Meetily
Agent APIReference

Errors and status codes

The error envelope, HTTP status codes, and CLI exit codes.

Every error response is a JSON object with a stable shape. This page lists the envelope, the HTTP status codes the gateway returns, and the CLI exit codes.

Error envelope

Every non-2xx response body has the same shape: an error object with a machine-readable code and a human-readable message.

{"error":{"code":"not_found","message":"human readable detail"}}

HTTP status codes

StatusCodeWhen
400bad_requestMalformed input, e.g. an unknown webhook event or a webhook URL whose host is loopback or a private address
401unauthorizedMissing or invalid token
403forbiddenNot owner or not allowed
403insufficient_scopeToken lacks the required scope
403not_prearmedRemote recording start without pre-arm
403license_requiredA Pro-gated action without the license
404not_foundUnknown id
409conflictState conflict, e.g. already recording, or a diarization rerun conflict, or webhooks disabled
413payload_too_largeRequest body exceeds the size limit, e.g. an import upload
422invalid_requestUnprocessable, e.g. empty transcript on regenerate, bad config body
429too_many_requestsPairing request cap
500internalServer error
503service_unavailableA component is warming up, or Integrations was disabled at runtime (the listener stays bound but every route returns 503 until re-enabled and the app restarts). The runtime-disable case has no JSON body.

A malformed JSON body (not valid JSON at all) returns 400 bad_request; a well-formed body that fails validation returns 422 invalid_request.

CLI exit codes

Exit codeMeaning
0ok
1generic error, including a server validation error
2timeout
3cannot connect (the app is not running)
4denied (401 or 403)

Do not retry-loop on exit 3

Exit code 3 means the app is not running or Integrations is off. Surface that to the user; do not retry in a tight loop.

Last updated on

On this page