FFullness Developers

Operate

Errors and retries

Handle authentication, scope, validation, idempotency and transient failures without unsafe retries.

Error envelope

JSON
{
  "error": {
    "code": "INSUFFICIENT_SCOPE"
  }
}

OAuth protocol errors use the standard top-level error and error_description fields. Action and management routes use the structured envelope above.

HTTP handling

StatusMeaningClient behavior
202Approval or asynchronous completion requiredPersist action ID; follow handoff and poll.
400Invalid input, forbidden request shape, or beta idempotency-reuse responseCorrect the request; do not retry unchanged.
401Missing, expired or revoked tokenReauthorize through the supported flow.
403Scope or Fullness policy denialDo not retry; request only justified authority.
404Action not found in this grant/workspaceVerify identifier and tenant context.
409Contracted idempotency conflict responseDo not change intent under the same key.
429ThrottledUse bounded backoff and response metadata.
5xxTransient service failureRetry reads; retry writes only with the original key and intent.

During the controlled beta, handle both HTTP 400 with IDEMPOTENCY_KEY_REUSED_WITH_DIFFERENT_REQUEST and HTTP 409 as terminal idempotency conflicts. This preserves compatibility while the runtime is aligned to its OpenAPI 409 response.

Correlation and evidence

Retain the response correlation ID, action ID and activity URL in operational logs. Do not log access tokens, authorization codes, PKCE verifiers, webhook secrets or financial payloads unnecessarily.

Start typing to search the documentation.