Errors and limits

What Netzo returns when it refuses a request, how to fix or retry it, and how many requests it accepts.

Netzo refuses a request with the same error on every surface. The error says what happened and what to do, so a person or an agent fixes it without guessing.

What an error holds

FieldHolds
statusThe HTTP status: 403, 409, 422…
codeA stable code, such as rpc.RECORD_LOCKED. Use it in your code; do not compare the message.
messageWhat happened, in the caller's language
fixThe next step to fix it
fieldsThe fields that caused the refusal, when they apply
retryableWhether the same request can work if you send it again

The language follows the Accept-Language header (es or en), the same in the API, MCP and the CLI.

Kinds of error

StatusMeansCommon codesWhat to do
401The credential is missing or not validUNAUTHENTICATEDSend a valid credential. See Authentication
403The credential does not have the permissionFORBIDDEN, FIELD_FORBIDDEN, APPROVAL_REQUIREDAsk for the permission, or the approval. Check first with can
404The record does not exist or you cannot see itNOT_FOUNDCheck the id and the place
409The change conflicts with the state or a ruleINVARIANT_VIOLATED, RECORD_LOCKED, IDENTIFIER_NOT_UNIQUE, CONCURRENT_UPDATERead fix. See Rules and integrity
412An approval is missing or still pendingAPPROVAL_PENDING, APPROVAL_REQUEST_MISSINGWait for the approval. See Access
422The input is not valid—Fix the fields in fields
429Too many requestsTOO_MANY_REQUESTSWait the time in Retry-After

A rule of a table has its own code, and its message already says how to fix it, for example "The fiscal period is closed".

Retries

Retry only when retryable is true. CONCURRENT_UPDATE means another request changed the record first: read it again and make the change again. Any other error repeats until you fix its cause.

To not create a record twice when you retry, find it first by its business key. See API.

By surface

SurfaceHow the error arrives
APIThe HTTP status, with the error in the JSON body
MCPA tool error with the message, fix and the fields
CLIThe error on standard error and a stable exit code. See CLI
AppA notice with the message and the fix, next to the field when it applies

Limits

LimitValue
Requests to the API and MCP1,200 per minute per credential: each API key, each person with OAuth and each signed-in person has its own limit
Life of an API key90 days if you choose no other date; 365 at most
Webhook delivery10 seconds per try, up to 3 retries. See Webhooks

A request over the limit gets 429 and the Retry-After header with the seconds left.