Reference
Problem responses.
Errors use application/problem+json. Read the stable code, and follow next when it is present.
Problem format
An error, as RFC 9457 Problem Details: every API error has this shape, as application/problem+json. Programs act on code; title and detail are for reading, and their words may change.
billing_codeoptional · stringStable reason returned by the billing service when a billing request is refused.
coderequired · stringA stable code, such as
not_found. The API's description lists every code and what to do about it.detailoptional · stringWhat went wrong this time, and often how to fix it.
nextoptional · objectThe next useful action, including a retry delay or confirmation URL when needed.
Fields of
nextWhat a client should do next.
actionrequired · stringSuch as
retry,login,sign_in,fix_request,add_member, orstop.after_soptional · integer (int64)For
retry: how many seconds to wait first.Minimum:
0commandoptional · stringA command that does it, such as
cscale auth login.urloptional · stringA page to open, such as a passkey confirmation.
pending_keyoptional · stringThe original billing request key to resolve before starting new work.
retry_after_soptional · integer (int64)Wait this many seconds before retrying;
Retry-Aftersays the same.Minimum:
0statusrequired · integer (int32)The HTTP status.
Minimum:
0titlerequired · stringA short summary, such as
Not found.typerequired · stringhttps://commitscale.com/errors/and the code, with hyphens, such ashttps://commitscale.com/errors/not-found.
Problem codes
access_deniedA device login was denied or refused after five wrong codes, or the passkey does not sign in here.
Stop. After five wrong codes, start a new login; otherwise, sign in another way.
already_existsSomething with that name exists, or its current state does not allow this request.
Use the one that exists, or choose another name.
billing_not_configuredBilling is not configured on this server or its billing service.
Billing is unavailable on this server. Try again later or contact support.
billing_refusedBilling refused the operation. billing_code names its reason; pending_key identifies a purchase needing resolution.
Review Billing and retry uncertain operations with the original key. Resolve an unfinished personal purchase through billing/requests/resolve. New work after a final refusal needs a fresh key.
check_key_scopeA check-only key may call the test check, read its own usage and acceptance rule, contact support, and withdraw data sharing.
Use a person's sign-in for account management. More agent power needs the owner's passkey; this key cannot widen itself.
conflictThe request conflicts with the current state, such as a membership that changed since you read it.
Read
detail, fetch the current state, and change the request. Whenretry_after_sis set, retrying the same request later can work.excerpt_too_largeA model request exceeds a field, line, rendered byte, token, body or internal per-check question bound.
Skip the question and leave it unanswered. Do not shorten a diff, split its meaning across questions or retry the same oversized input.
expired_tokenA device login code, sign-up, sign-in link, or passkey prompt expired or was already used.
Start a new flow. If a sign-up already created the account but its key was lost, the person signs in to revoke and replace that key.
feature_offThe namespace plan does not include this feature.
Retrying on the same plan will not help. GET /api/v1/namespaces/{namespace}/plan, and the namespace's Plan page in Settings, show what its plan includes.
forbiddenThe caller may not do this: only people may, only owners may, or the agent was not given this repository or write access.
Stop. Retrying will not help. Ask the owner for the access, or leave the step to a person.
idempotency_key_in_useThe first request with this key is still running, including a queued model question, or it succeeded with a secret, such as a new token, which is never replayed.
When
Retry-Afteris set, retry then with the same key. Otherwise the first request succeeded: do not repeat it.idempotency_key_reusedThe idempotency key was already used for a different request.
Use a new key for each new request, and the same key only for a retry of the same request.
internalThe server failed, and logged why.
Retry after
Retry-Afterseconds. A write is safe to retry with the same idempotency key.invalid_requestThe request is malformed or breaks a rule, such as a title that is too long, or a body that is not the expected JSON.
Fix the request as
detailsays. The same request fails the same way.invalid_tokenThe token is unknown, expired, or revoked, its agent was revoked, or an OAuth token was used outside its MCP resource.
Stop using it. Sign in again, or ask the owner to create a replacement agent key.
model_check_cap_reachedThe Free allowance of 100 checks this UTC calendar month is used across Free workspaces. Verified addresses that reach one inbox share the allowance. The check was not started.
Do not retry automatically. Open next.url to upgrade the workspace to Pro and keep checking. Already started checks may finish.
model_replay_expiredA model check's 24-hour replay window expired. Its retained identities cannot be charged again.
Leave this question unanswered. Never silently substitute a fresh check for an expired retry.
not_foundIt does not exist, or the caller cannot read it: a repository the caller cannot read is reported as not found.
Check the name or ID, and that the token has the repository.
organization_frozenThe organization's Free plan has more than one person; members cannot write, nobody can promote an owner, and no check can start.
An owner can renew Pro or remove people until one remains; others can ask an owner.
organization_person_limitThe organization's Free plan allows one person.
An owner can upgrade the organization to Pro, or ask an owner to do so.
passkey_layer_requiredThe person enabled the passkey layer. Direct check-key creation is refused.
Run cscale key create to confirm with a passkey, or use POST /api/v1/check-keys/confirmed.
quota_exceededWith 429, the caller used its requests for the minute. With 422, a count limit was reached.
With 429, wait
Retry-Afterseconds and retry. With 422, remove one first.signup_closedOpen sign-up is turned off on this server.
Ask for an invite, or sign in to an existing account.
signup_limitedThe address or network reached its rolling sign-up start limit.
Wait Retry-After seconds before starting again. Keep polling an existing request if you have one.
slow_downA device login or agent sign-up was polled too often.
Wait
Retry-Afterseconds, and poll less often.support_limitedThe account or server has sent too many recent support requests.
Wait
Retry-Afterseconds and retry.test_check_acceptance_not_countedThe target does not trust this agent key for its claimed person, or the passkey layer requires the person.
Review target trust or ask the person for a passkey acceptance.
test_check_acceptance_policy_unknownThe check could not read the responsible person's acceptance rule.
Treat the passkey layer as on. Agent acceptances do not clear findings. Check the protected check credential and server connection, then retry.
unauthenticatedThe request carried no credentials.
Use this operation's sign-in method. Bearer credentials use
Authorization: Bearer <token>; browser credentials use the session cookie.