Errors and rate limits
Understand error responses, retry safely and recover from failed generations.
Error response#
HTTP errors describe a rejected request. A saved operation can fail later while its status endpoint still returns HTTP 200.
{ "error": { "code": "REQUEST_INVALID", "message": "Check the request fields and try again.", "request_id": "e8aa0a87-6cd9-42eb-975a-b72bf43218c8", "retryable": false }, "request_id": "e8aa0a87-6cd9-42eb-975a-b72bf43218c8"}Recovery#
| HTTP | Error | Recovery |
|---|---|---|
400 | Invalid requestREQUEST_INVALID | Correct the fields identified by the error before trying again. |
401 | Invalid credentialCREDENTIAL_INVALID | Check the credential, its expiry and whether it has been revoked. |
402 | Insufficient creditsINSUFFICIENT_CREDITS | Add credits to the account that owns the credential, then continue the saved work. |
403 | Permission deniedSCOPE_REQUIRED | Use a credential with the required scopes and access to the selected resource. |
404 | Resource unavailableRESOURCE_UNAVAILABLE | Check the resource ID and that it belongs to the authorized account. |
409 | Intent conflictIDEMPOTENCY_CONFLICT | Reuse an intent only with its original request. Use a new UUID for a different action. |
429 | Rate limitedRATE_LIMITED | Wait for Retry-After before retrying the same intended request. |
503 | Temporarily unavailableDEPENDENCY_UNAVAILABLE | Wait for Retry-After and retry with the same intent. Check the saved operation after a timeout. |
Error#
{ "REQUEST_INVALID": "Check the request fields and try again.", "TOOL_INPUT_INVALID": "The tool input does not match its public schema.", "IDEMPOTENCY_KEY_REQUIRED": "Supply a UUID Idempotency-Key for this action.", "IDEMPOTENCY_CONFLICT": "This intent was already used for different details.", "CREDENTIAL_INVALID": "The credential is invalid, expired or revoked.", "AUTHENTICATION_REQUIRED": "A valid credential is required.", "SCOPE_REQUIRED": "The credential does not permit this action.", "ACTION_FORBIDDEN": "This action is not permitted.", "ORIGIN_DENIED": "This origin is not registered for the credential.", "RESOURCE_UNAVAILABLE": "The requested resource is unavailable.", "TOOL_UNAVAILABLE": "This tool is unavailable.", "CURSOR_INVALID": "Refresh the list and try again.", "ACTION_CHANGED": "The action or its target changed. Read its current state.", "HUMAN_REVIEW_REQUIRED": "Review this action in the authenticated Tong dashboard.", "REVIEW_EXPIRED": "This review expired. Read the current operation.", "INSUFFICIENT_CREDITS": "Add credits to continue.", "PAID_FEATURE_DEPOSIT_REQUIRED": "Complete the account deposit requirement to use this tool.", "POLICIES_REQUIRED": "Accept the current account policies to continue.", "ACCOUNT_UNAVAILABLE": "This account is unavailable.", "RATE_LIMITED": "Too many requests. Retry after the indicated interval.", "QUEUE_FULL": "The account work queue is full. Retry later.", "WEBHOOK_LIMIT": "The account webhook limit has been reached.", "WEBHOOK_DESTINATION_INVALID": "Use an allowed public HTTPS webhook destination.", "QUOTE_INVALID": "The quote is invalid or does not match this request.", "QUOTE_UNAVAILABLE": "The requested quote is unavailable.", "EXPORT_NOT_READY": "The export is not ready for download.", "EXPORT_TOO_LARGE": "Narrow the export interval or filters.", "QUERY_TOO_LARGE": "Narrow the query interval or filters.", "INTERVAL_INVALID": "Use a valid interval of at most 90 days.", "UPLOAD_TOO_LARGE": "The upload exceeds the media purpose limit.", "DEVELOPER_ACCESS_UNAVAILABLE": "Developer access is unavailable.", "DEPENDENCY_UNAVAILABLE": "A required service is temporarily unavailable.", "CATALOG_UNAVAILABLE": "The current model catalog is temporarily unavailable.", "CONFIGURATION_INVALID": "Developer service configuration is unavailable."}Retries and timeouts#
Keep one UUID for each intended action and reuse it after a timeout or retry. A different input with the same UUID is rejected.
curl 'https://platform.tongai.io/v1/operations/by-intent/45be69f1-c266-4a09-a82c-bf3c6303eb03' \ -H "Authorization: Bearer $TONG_API_KEY"Configuration
curl --versionRate limits#
Retry-After: {seconds}active_queue_per_account: 100admissions_per_minute: owner=500, credential=180, client=1000HTTP_per_minute: owner=5000, credential=2000, client=10000, IP=1000query_interval_max_days: 90export_max_rows: 100000export_max_bytes: 33554432webhooks_per_account: 10webhook_delivery_attempts: 12Respect Retry-After. Retry a temporary failure with the same intent after waiting; do not create a second paid action.