Skip to content

Clarify terminate/reject/return error behaviours including for unsupported transaction_data - #790

Open
jogu wants to merge 3 commits into
mainfrom
clarify-terminate-reject-error
Open

jogu wants to merge 3 commits into
mainfrom
clarify-terminate-reject-error

Conversation

@jogu

@jogu jogu commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

The spec used "terminate", "reject", and "return an error" without defining how they differ, and stated the unsupported transaction_data requirement twice in different words (sections 5.8 and 8.4).

  • Define that terminating request processing means no response is returned to the Verifier, as no authentic request (and hence no trusted response endpoint) was obtained.
  • Harmonize the unsupported transaction_data wording: section 5 now defers to the Transaction Data section, which specifies that the Wallet must not return a VP Token and that any response returned is an invalid_transaction_data error response. Aborting without a response remains possible per the privacy considerations, resolving the tension between the previous unconditional "MUST return an error" and the SHOULD NOT in the Error Responses privacy section.
  • List the unsupported parameter case under invalid_transaction_data.

Fixes #454
Fixes #757
Fixes #795

The spec used "terminate", "reject", and "return an error" without
defining how they differ, and stated the unsupported transaction_data
requirement twice in different words (sections 5.8 and 8.4).

- Define that terminating request processing means no response is
  returned to the Verifier, as no authentic request (and hence no
  trusted response endpoint) was obtained.
- Harmonize the unsupported transaction_data wording: section 5 now
  defers to the Transaction Data section, which specifies that the
  Wallet must not return a VP Token and that any response returned is
  an invalid_transaction_data error response. Aborting without a
  response remains possible per the privacy considerations, resolving
  the tension between the previous unconditional "MUST return an
  error" and the SHOULD NOT in the Error Responses privacy section.
- List the unsupported parameter case under invalid_transaction_data.

Fixes #454
Fixes #757
@jogu jogu changed the title Clarify terminate, reject, and return an error behaviors Clarify terminate/reject/return error behaviours including for unsupported transaction_data Aug 28, 2026
jogu added a commit to openid-certification/conformance-suite that referenced this pull request Sep 7, 2026
OID4VP 1.0 §8.5 defines invalid_transaction_data for transaction_data
entries with an unknown or unsupported type;
openid/OpenID4VP#790 clarifies in §8.4 that any
response a wallet returns in that situation must use this error code.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013nrt5DAzUoNbJ7eVVqbDz8
jogu added a commit to openid-certification/conformance-suite that referenced this pull request Sep 7, 2026
…transaction_data test

The request in this test is authentic (validly signed, correct
client_id), so a wallet has a trusted response endpoint and per OID4VP
1.0 §8.4 (as clarified by
openid/OpenID4VP#790) may return an
invalid_transaction_data error response — over direct post or as a
fulfilled Digital Credentials API response — instead of aborting
without responding. Previously any direct post call failed the test
before the body was parsed, and any fulfilled DC API response failed
even when it carried the spec-mandated protocol error.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013nrt5DAzUoNbJ7eVVqbDz8

Closes #1969
jogu added a commit to openid-certification/conformance-suite that referenced this pull request Sep 8, 2026
OID4VP 1.0 §8.5 defines invalid_transaction_data for transaction_data
entries with an unknown or unsupported type;
openid/OpenID4VP#790 clarifies in §8.4 that any
response a wallet returns in that situation must use this error code.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013nrt5DAzUoNbJ7eVVqbDz8
jogu added a commit to openid-certification/conformance-suite that referenced this pull request Sep 8, 2026
…transaction_data test

The request in this test is authentic (validly signed, correct
client_id), so a wallet has a trusted response endpoint and per OID4VP
1.0 §8.4 (as clarified by
openid/OpenID4VP#790) may return an
invalid_transaction_data error response — over direct post or as a
fulfilled Digital Credentials API response — instead of aborting
without responding. Previously any direct post call failed the test
before the body was parsed, and any fulfilled DC API response failed
even when it carried the spec-mandated protocol error.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013nrt5DAzUoNbJ7eVVqbDz8

Closes #1969

@javereec javereec left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just one small suggestion.

Comment thread 1.0/openid-4-verifiable-presentations-1_0.md Outdated
@brentzundel

Copy link
Copy Markdown
Collaborator

discussed today: needs review.

Comment thread 1.0/openid-4-verifiable-presentations-1_0.md Outdated
Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
Co-authored-by: Joseph Heenan <joseph@heenan.me.uk>
@c2bo
c2bo self-requested a review September 14, 2026 19:15
@dpostnikov
dpostnikov requested a review from fkj September 16, 2026 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

4 participants