ChatKomodo Docs Home Sign in

Guide

Errors

Format

Every failure answers with an HTTP status and a JSON body:

Error
{
  "error": "This recipient has opted out of messages",
  "code": "RECIPIENT_OPTED_OUT"
}

error is for people and may change; code is stable — branch on code. The text is English by default; send X-Lang: id (or ?lang=id, or Accept-Language: id) for Indonesian. Field names, enum values and codes are never translated. Some errors add fields, e.g. retry_after on 429.

HTTP status codes

StatusMeaningWhat to do
400The request is not valid (VALIDATION_FAILED, INVALID_NUMBER…)Fix the request; do not retry as is.
401Missing, wrong or revoked credentialCheck the Authorization header.
402Not included in your plan, or a plan limit is reached (LIMIT_REACHED)Upgrade or free up the limit.
403The credential may not do this (another business's device, a scoped key, an agent)Use the right key or login.
404The object does not exist (or is not yours)Check the id.
409Conflicts with the current state: device not connected, already done, recipient opted out in strict modeRead code; often wait or change state first.
413 / 415File too large / file type not supportedSend a smaller or supported file.
422Understood but cannot be done with this input (for example nothing to summarize)Change the input.
429Rate limited (RATE_LIMITED)Wait Retry-After seconds, then retry. See Rate limits.
500Unexpected error on our sideRetry with backoff; contact support if it persists.
502 / 503A service behind the API did not answer, or a feature is not set up on the platform (NOT_CONFIGURED)Retry later.

Common error codes

CodeMeaning
UNAUTHORIZEDNo valid credential.
FORBIDDENThe credential is valid but not allowed here.
KEY_SCOPE_FORBIDDENA scoped child key tried to reach business-wide data or another device.
KEY_MANAGEMENT_REQUIRES_LOGINAPI keys are managed from a dashboard login.
VALIDATION_FAILEDA field is missing or wrong; error names it.
NOT_FOUNDNo such object for your business.
CONFLICTThe state does not allow it (for example the device is not connected).
NOT_CONNECTEDThe device is offline.
INVALID_NUMBER / INVALID_JID / INVALID_TARGETSA phone number or chat id could not be read.
RECIPIENT_OPTED_OUTThe person asked not to be messaged (an error in strict mode, otherwise a warning).
CONSENT_ATTESTATION_REQUIREDStart the broadcast with "consent_attested": true.
CONFIRMATION_REQUIREDA destructive call needs an explicit confirmation field.
LIMIT_REACHEDA plan or platform limit is reached.
RATE_LIMITEDToo many requests; see Retry-After.
NOT_CONFIGUREDThe feature is not available on the platform yet.
NOT_SUPPORTEDWhatsApp does not offer this operation for the device.
UPSTREAM_ERRORA service behind the API (for example the AI model) failed; retry.
WEBHOOK_URL_BLOCKEDThe webhook URL points at a private or local address.
CURRENCY_NOT_SUPPORTED / COUPON_INVALIDBilling input that cannot be used.

Each endpoint in the reference lists the statuses it can return.

Warnings on success

Some successful responses carry warnings: [{code, message}] — the request was done, but you may want to act (for example RECIPIENT_OPTED_OUT on POST /v1/sessions/{sessionId}/messages). Log them.