Skip to content
Cloud

Error codes

Every error code the API and the MCP server return, with its HTTP status.

API errors

Body: {"error": "CODE", "message": "…"}. Match on the code; the message is for people and may change.

StatusCodeMeaning
400INVALID_REQUESTThe body or parameters failed validation
400TENANT_REQUIREDThe x-aspian-tenant header is missing or not a UUID
400LOGIN_EXPIRED, SSO_FAILEDSingle sign-on did not complete
400REGISTRATION_INVALID, INVALID_ASSERTIONA passkey registration or assertion was malformed
401UNAUTHENTICATEDNot signed in
403BAD_ORIGINA state-changing request came from another origin
403NOT_A_MEMBER, FORBIDDENYou are not a member, or your role cannot do this
403EMAIL_NOT_VERIFIED, NO_ACCOUNTThe account cannot sign in yet
403PLAN_REQUIRES_APPROVALThe plan needs an approval before it can apply
403REQUESTER_CANNOT_APPROVE, NOT_AN_APPROVERThis person may not approve this plan
403ASSERTION_INVALIDThe passkey signature did not verify
403NOT_AN_OPERATOR, NO_GRANT, RUNBOOK_NOT_IN_GRANT, RUNBOOK_NOT_PERMITTEDThe operator’s grant does not cover this
403SESSION_NOT_USABLE, NOT_YOUR_REQUESTThe agent session or approval request belongs to someone else
404NOT_FOUNDThe plan, organisation, request, link, incident or add-on does not exist
404SSO_NOT_CONFIGURED, RUNBOOK_UNKNOWNNot set up for this organisation
409PLAN_CHANGEDThe plan changed after the approval was requested
409ALREADY_APPROVED, APPROVAL_NOT_NEEDEDNothing more to approve
409NO_APPROVERS, NO_PASSKEYNobody can approve yet: add a named approver with a passkey
409PLAN_NOT_PENDING, PLAN_NOT_APPLICABLE, PLAN_CONFLICT, ILLEGAL_TRANSITIONThe plan is not in a state that allows this
410CHALLENGE_USED_OR_EXPIRED, LINK_USED, PLAN_EXPIREDSingle-use or time-limited, and already used or expired
422REQUESTER_CANNOT_APPROVE, NOT_AN_APPROVERWhen creating an approval request: this person cannot be asked
422UNKNOWN_PARTNERA partner attestation came from an unknown partner
500PLAN_INTEGRITYThe stored plan no longer matches its hash. Nothing was applied
500INTERNALSomething went wrong and has been logged

MCP errors

Tool results with isError: true and {"error": {"status", "code", "message"}}. Transport errors are JSON-RPC errors with the same code in data.

StatusCodeMeaning
401UNAUTHENTICATED, SESSION_INVALIDBad agent key or session handle
403KEY_PAUSEDThe key was paused after three refused or failed applies
403SCOPE_EXCEEDED, NOT_AUTHORISEDOutside the key’s projects or maximum risk class
403SESSION_TAINTED, PLAN_REQUIRES_APPROVALTaint or risk means a person must approve
403PLAN_NOT_OWNED, PLAN_EXPIREDNot this key’s plan, or too old
400PLAN_INVALIDThe changes are malformed or cannot be combined
400SECRET_VALUE_REFUSEDA value looked like a secret. Use a secret handle
404PLAN_NOT_FOUND, KEY_NOT_FOUNDDoes not exist
409PLAN_STATE_CONFLICT, KEY_NOT_PAUSEDWrong state for this action
429RATE_LIMITEDMore than 20 plans in an hour from this key
502APPLY_FAILEDThe cell refused or failed the change
500INTERNALSomething went wrong and has been logged