Troubleshooting
HTTP and integration errors
These status families are used by the public API, widget, dashboard, provider webhooks, and workers. Public API errors also include a stable code and request ID.
- 400
- Invalid request
- A query, JSON field, cursor, or required Idempotency-Key is missing or malformed.
- 401
- Authentication failed
- The API key, user session, admin session, provider signature, or cron secret is missing or invalid.
- 402
- Plan selection required
- The workspace has not completed required plan selection or onboarding.
- 403
- Not permitted
- The account, role, API scope, origin, plan, or widget capability does not permit the operation.
- 404
- Not found
- The resource does not exist inside the authenticated tenant boundary.
- 409
- State conflict
- The operation conflicts with current state or reuses an idempotency key with a different body.
- 413
- Payload too large
- The request exceeds the documented route limit.
- 429
- Rate limited
- Wait and retry with exponential backoff. Public API keys allow 600 requests per minute.
- 500
- Internal error
- Use the returned request ID when contacting Evnao support.
- 503
- Dependency unavailable
- A required provider, worker, database, or configuration is temporarily unavailable.
Handle write conflicts safely
request_in_progress- Wait for the original request to finish, then retry the same operation with the same key and body.
request_outcome_unknown- The previous write may have completed. Check the resource first; do not retry with a new key. Contact support if you cannot determine the outcome.
idempotency_conflict- That key was used with a different body. Restore the original body for a retry; use a new key only for a genuinely separate operation.
invalid_state- Check the current resource state. For example, reopen a resolved ticket before changing its response mode.
Find delivery details
For outbound webhook failures, API settings show delivery attempts and safe errors. For channel failures, review connection status and the latest inbound, outbound, and error timestamps.
Include the request ID, page or endpoint, approximate time, and what you were trying to do. Do not include API keys, passwords, verification codes, or customer message contents.