Resources
Content Integration Errors

Content Integration Errors

Understand Content Integration error codes, retry rules, and support handoff details.

Content Integration errors use a stable error.code value. Treat the code as the client-facing contract and the message as human-readable detail.

Error codes

CodeMeaningRetry
content_invalid_api_keyBearer token is missing, malformed, revoked, or expired.No. Create or rotate the key.
content_invalid_requestRequest body failed validation.No. Fix the payload.
content_forbiddenSigned-in admin cannot manage the target organization.No. Use an admin with access.
content_not_foundJob, key, or webhook was not found.No, unless the id was mistyped.
content_conflictRequest conflicts with an existing state.Usually no. Check idempotency.
content_rate_limit_exceededKey rate limit was exceeded.Yes, after waiting.
content_internal_errorUnexpected server error.Yes, with backoff.

Example error

{
  "error": {
    "code": "content_invalid_api_key",
    "message": "Invalid or missing Content Integration API key",
    "status": 401
  }
}

Retry rules

  • Retry 429 after waiting at least 30 seconds.
  • Retry 500 with exponential backoff.
  • Do not retry 400 without changing the payload.
  • Do not retry 401 without replacing the key.
  • Do not create a second job for the same source content while the original job is still queued or processing.

Failed jobs

When a job reaches failed, fetch the result endpoint and inspect:

  • job.error
  • each outputs[].error
  • requested output list
  • source title

Fix the source JSON or requested outputs, then create a new job with a new idempotency key if the source content changed.

Support handoff

Send these fields to TutorFlow support:

FieldNotes
jobIdRequired for expansion issues.
keyPrefixSafe to share. Do not send the full key.
Endpoint pathExample: /v1/content/integrations/expansions.
TimestampInclude timezone.
Idempotency keyHelps find duplicate or retried requests.
Final response bodyInclude error object and status code.
Source JSON sampleInclude only if it can be shared.