Error codes

Responses carry a stable code. Git clients may only display the HTTP status — check the broker logs or audit record for details.

Policy & approvals

StatusCodeMeaning
403DENIEDA rule denied the action, or nothing matched
403REQUIRE_APPROVALHeld for review; approve on the host and retry
403PUSH_OPTION_DENIEDPush option not in allowedPushOptions
403SELF_APPROVALReviewer is the delegating human
403REVIEWER_SOURCE_NOT_ALLOWEDRule doesn't accept this reviewer source
403REVIEWER_SOURCE_UNVERIFIEDoidc: review without a valid signature
409APPROVAL_SUPERSEDEDPolicy reloaded; retry to create a new request
429TOO_MANY_PENDINGPending approval cap reached

Content scanning

StatusCodeMeaning
403CONTENT_BLOCKEDSecret, blocked path, or oversized blob found
403UNSCANNABLE_OBJECTPack carries objects no pushed ref reaches
503SCAN_UNAVAILABLENo mirror available; fails closed

Pull requests

StatusCodeMeaning
409PR_NOT_MERGEABLEClosed or draft PR
409HEAD_MOVEDHead no longer matches the reviewed SHA
409BASE_CHANGEDBase branch changed before merge
404NOT_A_PULL_REQUESTTarget number is an issue

Authentication & limits

StatusCodeMeaning
401UNAUTHENTICATEDMissing or wrong bearer token
401ASSERTION_INVALIDRuntime assertion failed verification
403CLIENT_NOT_ALLOWEDBrowser origin or unexpected Host
413BODY_TOO_LARGERequest over the size limit
429RATE_LIMITEDPer-client rate limit; honor retry-after
503BUSYConcurrency limit reached
503DISK_LOWState volume under 256 MiB free

Fleet

StatusCodeMeaning
503POLICY_EXPIREDBundle past expiresAt with no newer one
503REVOCATIONS_EXPIREDRevocation list expired in assertion mode

Git LFS

StatusCodeMeaning
502LFS_UNTRUSTED_HOSTStorage host not in AGENTGATE_LFS_HOSTS
400LFS_HASH_MISMATCHTransferred bytes didn't match the oid
503LFS_BUSYTransfer pool full