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-IDis 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
SendX-Tenant-ID and, for employee creation where required, an allowed divisionId.
Request validation
State conflicts
For409, 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
fileNameis notnull. - Confirm the ID belongs to the expected tenant.
- Inspect status and
Content-Typebefore writing to disk. - Discard partial files after
502,503,504, or network interruption. - Retry transient download failures with bounded backoff.
