ACPpotamia

Advanced guide / Chapter 7 of 7

Operations, reliability and troubleshooting.

If limits cannot be checked

Fail mode: what happens if limits cannot be checkedLimits checkedwithin 1.5 seconds?Yes: normal pathallowed or blocked as usualNo: fail mode decidesteam setting, or the caller'sX-ControlPlane-FailMode headerClosed (default): HTTP 503safe: nothing uncheckedOpen: sent uncheckedlogged as 'sent unchecked'yesnoThe ACPpotamia key is always checked,whatever the fail mode.
Fail mode decides what happens when your team's control object doesn't answer in time.

Closed is the safe default, and with it nothing is ever sent unchecked. Open keeps your agents running through an outage, and each call that goes out that way is logged as "sent unchecked". Free plans always fail closed. A caller can always ask for closed, but asking for open only works if the team allows it.

Every error code

StatusCodeMeaningWhat to do
401missing_api_key, invalid_api_key, expired_api_key, key_revokedThe ACPpotamia key is missing, wrong or revokedCheck the key; create a new one
401missing_upstream_keyNo provider key sentSend X-Upstream-Key (or use a test key)
402budget_exhausted, token_limit_reachedThe team's monthly budget or tokens are used upRaise the limit or wait for the 1st
402key_ / tenant_ / session_budget_exhaustedThat key, customer or task reached its own budgetRaise it; others are unaffected
403model_not_allowedOutside the model policyUse an allowed model
403team_suspendedThe team is suspendedWrite to acp@examopotamia.com
429rate_limited, key_ / tenant_ / session_rate_limitedToo many requests a minuteWait for Retry-After
429loop_detected, session_killed, team_killedStopped by loop detection or the kill switchFix the cause, then revive; retrying does not help
502upstream_unreachableThe provider could not be reachedRetry; nothing was charged
503control_plane_unavailableLimits could not be checked and fail mode is closedRetry after Retry-After

Monitoring

Troubleshooting checklist

SymptomCheck
Every call gets 401Is the key the acp_ key (not the provider key)? Was it revoked? For Anthropic, is it in X-ACP-Key?
Calls work in tests but not in productionTest keys never call providers. Production needs a real acp_ key and X-Upstream-Key.
An agent stopped on its ownActivity → filter by agent: look for loop_detected or a budget code. Revive on the Agents page.
One customer blocked, others fineThat tenant reached its budget: Tenants page or GET /v1/controlplane/tenants/{id}.
Answers are shorter than expectedA budget is nearly used up, so max_tokens was lowered. See X-ControlPlane-Budget-Remaining-USD.
Changes do not seem to applyLimits, policies, kill switches and revocations apply to the next call. Plan upgrades apply within a minute.

Still stuck? Email acp@examopotamia.com with the X-ControlPlane-Request-Id.