Documentation version: 2026-09-18.3
Canonical: https://docs.creator.gg/guides/recovery.md

# Errors, request IDs, and uncertain outcomes

## Request IDs
Every mutation requires a unique requestId: 8–128 characters using letters, digits, period, underscore, colon, or hyphen. Retain its exact arguments and resource IDs.

The schema marks requestId optional for transport compatibility, but the service requires it before mutation submission. Omission returns request_id_required.

An identical retry must use the same requestId and arguments. Changed arguments with an existing ID return request_id_conflict. Retained receipts can answer a retry without another change. Never create a new ID just to bypass uncertainty.

## Unknown outcomes
Timeouts, network errors, unreadable responses, and server failures may occur after submission. Unknown is not success or failure.

1. Retain the original requestId and resource IDs.
2. Read the existing campaign/post/template/contact.
3. Without a resource ID, an identical retry can retrieve a retained receipt. An in-progress/unknown receipt does not authorize resubmission.
4. If state remains uncertain, inspect the account screen or request operator reconciliation. Do not submit another send/post.

There is no dedicated operation-status tool. operationId is the recorded request, not a campaign ID; do not invent operations_get.

Receipts retain references/status, not duplicate message/contact content. Read referenced records for current state; receipts can be historical.

## Status meanings
completed: tool completed or resource reports a terminal state; inspect data. A completed read is not a send.
draft: content saved without sending.
scheduled: scheduling accepted.
processing: submitted/pending.
failed: inspect error code/nextAction.
unknown: outcome unconfirmed or an unsupported-action handoff.

HUMAN_ACTION_REQUIRED means instructions/link were returned, not that a test send, cancellation, CSV import, or connection action occurred.

## Errors
Input/schema errors: read the exact tool schema. Confirm whether submission occurred before correcting/retrying. IDs must belong to this workspace; tenant overrides are rejected.

RECIPIENT_SUPPRESSED: exclude the ineligible recipient, never clear opt-out to force delivery.
DRAFT_REQUIRED / NATIVE_EDITOR_REQUIRED: inspect state and use the account screen.
Rate limiting: follow returned retry guidance; uncertain writes still need reconciliation.
Expired/revoked access: use existing connection authentication. Temporary service errors do not necessarily require reinstalling.
Actor/user lookup failures: require connection maintenance; do not substitute a workspace ID, alter sender identity, or repeat the campaign to diagnose them.

## Service and content-link errors
| Code | Meaning and recovery |
| --- | --- |
| SERVICE_OUTCOME_UNKNOWN | A response could not be confirmed. Inspect the existing record before repeating a write. |
| SERVICE_RATE_LIMITED | Account rate limit reached; no automatic retry occurred. |
| SERVICE_AUTH_EXPIRED | Review the existing connection; do not create duplicate grants. |
| SERVICE_FORBIDDEN | The action is not permitted for the current connection/account. |
| SERVICE_NOT_FOUND | Verify the returned record ID and current workspace. |
| SERVICE_REJECTED | Inspect the input and account screen for the rejected operation. |
| SERVICE_SCHEMA_MISMATCH | A required response field is unavailable; use the account screen. |
| ASSET_LINK_EXPIRED | Read the source record again for a current preview link. |
| ASSET_WORKSPACE_MISMATCH | Use a content link from the current workspace. |

Do not change requestId to bypass an uncertain send or publication. Content-link rejection before a write is a failed operation; correct the link and use a new requestId for the corrected input.
