GenesisForums
Documentation navigation

Errors and retries

Interpret API errors and decide when a request is safe to retry.

Error shape

{
  "error": {
    "code": "invalid_request",
    "message": "A novel name of 1-300 characters is required."
  }
}

Use the machine-readable code for program logic and keep the message for diagnostics. Messages may become more specific without a version change.

HTTP statuses

StatusMeaningRetry?
400Malformed body, header, or destinationFix request
401Missing or invalid API keyFix credentials
403Integration or capability disabledContact Genesis
409Identity or idempotency conflictInvestigate; do not blind retry
413Payload too largeReduce payload
415Content type is not JSONFix header/body
422Semantically invalid fieldsFix fields
429Rate limit exceededRetry with backoff
500Temporary server failureRetry with backoff

Retry policy

Retry network timeouts, 429, and temporary 5xx responses with exponential backoff and jitter. Always reuse the same idempotency key and body. Stop after a bounded number of attempts and alert an operator.

Do not automatically retry validation, authentication, permission, or conflict responses.

Support diagnostics

When contacting Genesis, provide the integration slug, endpoint, UTC time, HTTP status, error code, and idempotency key. Do not include the API key, raw onboarding URL, JWE, signing private key, password, or unnecessary personal information.