Aller au contenu principal

Error codes

Every error has a code, a message and a retryable flag. The agent sends:

{
"v": 1,
"id": "c1b2…",
"type": "response",
"ok": false,
"error": { "code": "PRINTER_OFFLINE", "message": "…", "retryable": true }
}

The REST API answers with the matching HTTP status and { "error": { "code", "message", "retryable", "details" }, "requestId" }. Both SDKs throw an error object with the same fields.

Retryable means that sending the same request again may succeed. The agent already retries retryable printer errors itself (5 attempts by default, after 2 s, 5 s, 15 s, 30 s and 60 s).

CodeRetryableSent byMeaningWhat to do
UNAUTHORIZEDnoagent, cloudNo valid credentials: a missing or revoked API key, an expired session, or a signed request from an organization the agent does not belong to.Check the API key or the orgId and keyId your signer uses.
SIGNATURE_INVALIDnoagentThe request signature does not verify with any signing public key of the organization.Sign the exact params the SDK sends, with a key that is not revoked. The agent receives new keys with its config.
SIGNATURE_EXPIREDnoagentThe signature's timestamp is more than 300 seconds away from the agent's clock.Sign each request just before sending it, and check the clocks of both machines.
NONCE_REUSEDnoagentThe nonce was already used in the last 10 minutes.Generate a new random nonce for every request.
ORIGIN_NOT_ALLOWEDnoagentThe web page's origin is not in the organization's allowed origins.Add the origin (scheme, host and port, no path) in Dashboard → Developers → Allowed origins.
SITE_BLOCKED_BY_USERnoagentIn unsigned mode, the person at the computer chose Block for this site.The choice is stored per origin; it can be reset from the tray menu.
NOT_ACTIVATEDnoagentThe agent is not activated, so it has no organization and no keys.Activate it with an activation code from Dashboard → Devices → Add device.
LICENSE_LIMITnoagent, cloudThe plan's limit is reached: devices, jobs this month, or a feature not in the plan.Upgrade the plan or remove unused devices.
RATE_LIMITEDnoagent, cloudToo many requests for this API key, device or origin.Wait for the Retry-After delay (REST) and slow down.
INVALID_JOBnoagent, cloudThe job does not match the job-request schema, or its content cannot be decoded or rendered (including a template that fails to render).details names the field. Validate against protocol/schemas/job-request.json.
UNSUPPORTED_FORMATnoagent, SDKThe agent or the target printer cannot print this job type.Check capabilities in agent.info and on the printer.
PRINTER_NOT_FOUNDnoagent, cloudNo printer matches the ID, alias or name, or there is no default printer.List printers first, or set an alias in the device config.
PRINTER_OFFLINEyesagentThe printer does not answer: switched off, unplugged or unreachable on the network.The job is retried automatically. Check power, cable and network.
PAPER_OUTyesagentThe printer reports no paper.Load paper; the job is retried automatically.
COVER_OPENyesagentThe printer reports an open cover.Close the cover; the job is retried automatically.
PRINTER_ERRORnoagentThe printer reports an error it cannot recover from alone (cutter jam, overheating, spooler error).Check the printer, then reprint the job.
JOB_NOT_FOUNDnoagent, cloudNo job with this ID in this organization.Check the ID. Local job history is kept for a limited time.
JOB_ALREADY_FINISHEDnoagent, cloudThe job is already printed, failed or cancelled, so it cannot be cancelled.Nothing to do; use reprint to print it again.
TIMEOUTyesagent, SDKNo answer in time: the printer did not confirm, a queued job passed its TTL, or the SDK got no answer from the agent.The agent retries printer timeouts. In the SDK, raise timeoutMs or retry.
UPDATE_REQUIREDnoagentThe agent is older than the minimum supported version and refuses local jobs.The agent updates itself; install the latest version by hand if it cannot.
INTERNALnoagent, cloudAn unexpected error.Retry later. If it persists, contact support with the requestId.
NOT_FOUNDnocloudThe REST resource (device, printer, template, webhook) does not exist here.Check the ID and that it belongs to the API key's organization.
FORBIDDENnocloudThe API key lacks the scope, or the user lacks the role, for this call.Create a key with the needed scope (for example jobs:write).
CONFLICTnocloudThe request conflicts with the current state, for example the same idempotency key with a different body.Use a new idempotency key for a different job.
VALIDATION_FAILEDnocloudThe request body or query does not validate.details lists each field and problem.
AGENT_NOT_FOUNDnoSDK onlyNo agent answers on any local port (8182, 8283, 8384, 8485).Install or start the agent; helpUrl points to the download page.
AGENT_CERT_UNTRUSTEDnoSDK onlyThe agent runs, but the browser does not trust its local certificate, so the secure WebSocket fails.Reinstall the agent so it trusts its local CA again, then restart the browser.

This page is generated from protocol/schemas/error-code.json, the source of the ErrorCodes constants in @jodaprint/protocol.