Snippet

Error code table

The full taxonomy lives at docs/sdk-standards/error-taxonomy.md in the GetFluxly repo. This is the user-facing summary.

HTTPerror codeRetryableMeaning
400validation_errorNoRequest shape is wrong; fix the payload
401unauthenticatedNoAPI key missing or unknown
403forbiddenNoValid key, no access to the resource
403wrong_key_typeNoRight key, wrong classification, see key types
404not_foundNoResource doesn't exist
408timeoutYesServer didn't respond in time; retry with same X-Idempotency-Key
409alias_conflictNoTwo profiles claim the source ID; pick one and re-alias
409erasure_in_progressNoA prior erasure is still running
413payload_too_largeNoBody exceeds endpoint limit
425too_earlyYesBackend warming up; retry shortly
429rate_limitedYesHonor Retry-After
500–599server_errorYesTransient; SDKs retry with backoff

SDK error shape

All SDKs translate these into a typed error with the same fields:

{
  code: "rate_limited",
  retryable: true,
  retryAfterMs: 2000,
  message: "...",
  details: { ... },
}

retryable indicates whether the SDK will retry by default. If you're integrating directly against the REST API, replicate that posture: retry on retryable: true with X-Idempotency-Key preserved.