Access, registration and quota errors
These codes fire before any tool logic runs. They are about the session, the account, or the repository's registration — not about your request's content. Most need a human action (sign-in, upgrade, registration) rather than a different tool call; say so instead of retrying.
SUBSCRIPTION_INVALID
The signed-in account's subscription does not permit tool calls. A human must resolve billing or sign in with a different account. Retrying any tool will return the same refusal.
REPO_NOT_REGISTERED
The repository is not connected to the caller's cix account. The refusal carries the connect link or next step. Registration is a one-time human action per repository.
INDEX_MISSING
No cix project resolves for the current directory — typically cix-init
has never been run here. A human runs cix-init in the project root; then
retry.
QUOTA_EXCEEDED
The account hit its usage quota for the current period. Further calls will be refused until the quota resets or the plan changes. Report the limit; do not spin on retries.
TOOL_NOT_IN_TIER
This specific tool needs a higher plan tier than the account has. Other tools keep working. Mention the tool name and continue with the tools that are available.
CROSS_REPO_WRITE_REFUSED
A write named a project other than the one the session is working in. Writes are confined to the repository they belong to; re-issue the write from a session in that repository, or drop the cross-repo target.
PROJECT_NOT_LOCAL
The named project is not registered on this machine, so there is no local
checkout to act on. Check list_projects() for what is registered here.
PATH_OUTSIDE_REPO
The path in the request escapes the repository root. Use repo-relative paths, or an absolute path that stays inside a checkout of this repository.
The pattern
Everything here is a gate, not a defect: the server is telling you the call is well-formed but not permitted in this session. The message names the actor who can change that — usually the person running the session.