HockeyStick Knowledge Base Knowledge Base Open Command Centre

MCP server and AI apps

Limits and error codes

Timeouts, token lifetimes, rate limits and the error codes users relay from their AI app.

Limits and error codes

When a client pastes an error from their AI app, it is usually one of the codes below. Each comes with a fixed, safe explanation, so the app's wording should match.

Limits

LimitValue
Overall request budget45 seconds by default (configurable up to 120), including sign-in checks and any form shown to the user
Single API call15 seconds by default
Request body256 KB by default
Response size1 MB by default
MCP access token5 minutes, refreshed by the app
Exchanged API token60 seconds
Refresh grant on TestRotating, 90-day absolute lifetime
Identity checks300 per identity per minute; unlinked identities 5 per minute each and 30 per minute overall, one at a time
Token exchangeOne start per second per server process, at most four waiting
Per-connection call rateSet per environment

Sign-in and identity codes

CodeMessage the user seesAction
invalid_tokenAuthentication required.Reconnect with the email code.
account_not_foundNo HockeyStick account exists for the email.Invite the user, or check they used the right email.
identity_untrustedUse the email code connection for HockeyStick.Sign in again with the email code.
identity_unverifiedA verified email address is required.Sign in again with the email code.
identity_conflictThis HockeyStick account is linked to another identity.Escalate to an admin to review the link.
connection_disconnectedThis AI connection was disconnected. Contact support to reconnect.See Revoking and resetting AI access.
insufficient_scopeThe tool requires an additional permission.Reconnect with hsai.write if they want changes.
identity_rate_limitedIdentity checks are rate limited.Wait for the retry time.

Platform and access codes

CodeMeaning
forbidden / FORBIDDENNot permitted, including "Staff permission required" for staff-only tools.
ENGAGEMENT_FORBIDDENThe engagement_id is not one this person can access.
CONTEXT_REQUIREDA staff write needs an explicit client.
ACTIVATE_REQUIREDThe client does not have Activate.
CLIENT_WRITE_REQUIREDStaff tried to log revenue; only client users can.
DELEGATED_ROUTE_FORBIDDENThe call reached an API route outside the tool list.
not_foundMissing or foreign record.
invalid_argumentsThe app sent bad input; the message names the field.
exchange_rate_limited, input_rate_limited, rate_limitedToo many calls. Stop, wait, retry reads once at most. Never auto-retry writes.
exchange_timeoutAuthorisation timed out before anything ran.
auth_unavailable, exchange_unavailable, admission_unavailableThe sign-in side is down or misconfigured. Escalate to engineering.

Uncertain outcomes

These mean a write may have been saved: timeout, cancelled, api_unavailable, commit_unconfirmed, draft_commit_unconfirmed, admission_unconfirmed and the API's ..._OUTCOME_UNCONFIRMED and ..._COMMIT_UNCONFIRMED codes. Do not repeat. Read the record back, and pass the brief ID and request ID to engineering if it needs reconciling.

Brief-specific refusals are listed in Tool reference: briefs.