Context
The protocol has COMPLIANCE_UNSATISFIED as a generic compliance error, but no specific code for governance denial. When a seller calls check_governance and the governance agent denies, the seller needs to return an error to the buyer — and the buyer needs to know it was specifically a governance denial, not a content standards failure or brand safety issue.
Proposal
Add GOVERNANCE_DENIED to the standard error codes table:
| Code |
Recovery |
Description |
GOVERNANCE_DENIED |
correctable |
A registered governance agent denied the transaction. The buyer may restructure the buy, escalate to a human, or contact the governance agent. |
Recovery is correctable because the buyer can take action — reduce the budget, split into smaller transactions, escalate to human authority, or change the plan.
Why not COMPLIANCE_UNSATISFIED?
COMPLIANCE_UNSATISFIED is too generic. A buyer receiving it doesn't know whether:
- Governance denied the buy (action: escalate or restructure)
- Content standards failed (action: fix the creative)
- Brand safety was violated (action: change targeting)
Each requires a different buyer response. Governance denial is a distinct workflow — the buyer may need to escalate to human spending authority or restructure into smaller transactions within the governance plan's limits.
Where to update
- Error codes table in the protocol spec
src/lib/types/error-codes.ts in adcp-client (or wherever standard codes are defined)
docs/llms.txt error codes section
- Training agent's
create_media_buy handler should return GOVERNANCE_DENIED instead of / in addition to COMPLIANCE_UNSATISFIED
Related
Context
The protocol has
COMPLIANCE_UNSATISFIEDas a generic compliance error, but no specific code for governance denial. When a seller callscheck_governanceand the governance agent denies, the seller needs to return an error to the buyer — and the buyer needs to know it was specifically a governance denial, not a content standards failure or brand safety issue.Proposal
Add
GOVERNANCE_DENIEDto the standard error codes table:GOVERNANCE_DENIEDcorrectableRecovery is
correctablebecause the buyer can take action — reduce the budget, split into smaller transactions, escalate to human authority, or change the plan.Why not COMPLIANCE_UNSATISFIED?
COMPLIANCE_UNSATISFIEDis too generic. A buyer receiving it doesn't know whether:Each requires a different buyer response. Governance denial is a distinct workflow — the buyer may need to escalate to human spending authority or restructure into smaller transactions within the governance plan's limits.
Where to update
src/lib/types/error-codes.tsin adcp-client (or wherever standard codes are defined)docs/llms.txterror codes sectioncreate_media_buyhandler should returnGOVERNANCE_DENIEDinstead of / in addition toCOMPLIANCE_UNSATISFIEDRelated
GOVERNANCE_DENIED)createAdcpServerwithgovernanceDeniedError()helper (currently usesCOMPLIANCE_UNSATISFIED)