Skip to main content
Start with the HTTP status, error.code, and X-Request-ID. Do not repeat writes blindly while diagnosing.

Triage flow

Connectivity

Authentication and scope

401 INVALID_API_KEY

  • Confirm the value is loaded from the intended secret version.
  • Confirm there are no leading/trailing spaces or accidental quotes.
  • Confirm the key is active in API Key Management.
  • Confirm a stale runtime was not missed during rotation.

403 TENANT_NOT_IN_SCOPE

  • Confirm X-Tenant-ID is a tenant ID, not a company name or division ID.
  • Confirm the selected tenant is included in the key scope.
  • Confirm the referenced resource belongs to the same authorized context.

Ambiguous placement

Send X-Tenant-ID and, for employee creation where required, an allowed divisionId.

Request validation

State conflicts

For 409, re-read the resource before taking action.
  • ORDER_ALREADY_DECIDED: reconcile the current final decision.
  • INVALID_STATE_TRANSITION: current lifecycle does not permit the request.
  • DIVISION_CYCLE: selected parent is a descendant of the division.
  • DIVISION_NAME_NOT_UNIQUE_ON_SAME_LEVEL: choose a unique sibling name.
  • DUPLICATE_RESOURCE: find and map the existing resource.

Timeout after a write

Download failures

  • Re-read metadata and confirm fileName is not null.
  • Confirm the ID belongs to the expected tenant.
  • Inspect status and Content-Type before writing to disk.
  • Discard partial files after 502, 503, 504, or network interruption.
  • Retry transient download failures with bounded backoff.

Escalation record

Collect:
Never include the API key or unnecessary complete personal payloads.
Last modified on September 2, 2026