Upcoming Changes in draft-hardt-oauth-aauth-protocol-02

June 9, 2026 · View on GitHub

Confirmed by spec lead (2026-05-30). Tracked here until the -02 draft is published.

Index

#ChangeExtendsStatus
1Add capabilities as standard token endpoint parameter§7.1.3 Agent Token Request (L830)Pending -02
2Add user_unreachable to error table as terminal error§Error Responses (L2006)Pending -02
3Add prompt as standard token endpoint parameter§7.1.3 Agent Token Request (L830)Pending -02

1. capabilities as token endpoint body parameter

Extends: §7.1.3 Agent Token Request (#ps-token-endpoint, line 830)

Current spec: Token endpoint params are resource_token, upstream_token, justification, login_hint, tenant, domain_hint, platform, device. The AAuth-Capabilities header (§AAuth-Capabilities, L1756) is explicitly excluded from PS endpoints.

Change: Add capabilities (OPTIONAL) to the token endpoint request body. Array of strings. Values from the AAuth Capabilities registry (interaction, clarification, payment).

Clarification:

  • capabilities in the body is the correct mechanism for mission-less agents.
  • When a mission is active, the PS already has capabilities from the approval flow - the agent doesn't need to resend them but MAY include them if they've changed.
  • The AAuth-Capabilities header remains resource-only. No conflict - headers are used where there's a pre-existing API; body is the right place for the PS token endpoint.

SDK impact: Current fix (sending capabilities in POST body) is correct and will be spec-standard.


2. user_unreachable as terminal error

Extends: §Token Endpoint Error Codes (#error-response-format, line 2006)

Current spec: Error table has interaction_required (403) defined as "User interaction is needed but no interaction channel is available."

Change: Add user_unreachable as a distinct terminal error. Clarify the difference:

ErrorStatusTypeMeaning
interaction_required202Non-terminalPS needs the agent to direct the user somewhere (URL + code). Polling continues.
user_unreachable400TerminalPS has no channel to the user AND the agent didn't declare interaction capability. No way to reach the user.

Clarification: These are two distinct conditions, not aliases. interaction_required comes with a deferred response (202) and an interaction URL. user_unreachable is a hard stop - nothing can be done without the agent declaring capabilities.

SDK impact: Error classification (Gap E) should treat user_unreachable as a terminal, non-retryable error distinct from interaction_required.


3. prompt as token endpoint body parameter

Extends: §7.1.3 Agent Token Request (#ps-token-endpoint, line 830)

Current spec: No prompt parameter listed.

Change: Add prompt (OPTIONAL) to the token endpoint request body. Values follow OIDC (per OpenID Core §3.1.2.1):

ValueMeaning
noneNo UI. Return error if consent/login is needed.
loginForce re-authentication.
consentForce consent screen even if prior consent exists.
select_accountPrompt user to select an account.

Not included: provider_hint remains a Hellospecific extension. It steers between consumer providers (email, Google, etc.) and doesn't generalize.

SDK impact: Should support prompt as a first-class option on the token exchange builder. provider_hint can go through the extensibility hook for PS-specific params.