Conversation
A specification defining an error type not defined in the Errors section may declare which of the defined error types it refines, and the HTTP(S) binding resolves an unlisted error type URI to a status code declared directly by its defining specification, else the status of the error type it refines, else 500. Addresses w3c#355.
danpape
requested review from
dmitrizagidulin,
mccown,
msporny,
ottomorac,
swcurran and
wip-abramson
as code owners
August 26, 2026 03:38
This was referenced Aug 28, 2026
wip-abramson
approved these changes
Sep 9, 2026
wip-abramson
left a comment
Contributor
There was a problem hiding this comment.
Thanks Dan, I will aim to get this on the agenda next week to get some more attention on it. But it looks good to me.
Contributor
Author
|
Thanks! No preference came back on the wording (discussed in the original issue), so I'll leave "refines". |
peacekeeper
approved these changes
Sep 15, 2026
peacekeeper
left a comment
Collaborator
There was a problem hiding this comment.
Looks good, thanks!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses #355.
Per @peacekeeper's suggestion there, a custom error code could either declare which existing error type it refines and inherit that type's status, or declare its HTTP status code directly. Both routes are here.
I made two edits: In the Errors section, a specification that defines an error type not defined there MAY declare which of the defined types it refines. In the HTTP(S) Binding section, a rule after the status code table: a status declared by the defining specification wins, otherwise the status of the type it declares it refines, otherwise
500.These fix a gap described in #355. The Errors section says it "uses some errors defined in Section 3.5 Processing Errors of the [CID] specification", but none of those have a row in the status code table. The error registry in DID Resolution Extensions carries seven DIF-defined codes (
notAllowedVerificationMethodTypeand the rest) and none of those have a row either. All of them would end up as(any other error URI)->500today.One question: I annotated the catch-all row as
(any other error URI; see below)rather than deleting it. Step 3 in the text I added kind of makes that row redundant, but the500default was proposed deliberately in #72 and I would rather not remove it uninvited.Two things I can't fix here. The error registry doesn't have a place to put such a declaration as an entry records only where the error is normatively defined, and its example is
{"error": "invalidDid"}, a bare string rather than an RFC 9457 object with a URLtype. I've raised that as #359, which is really the broader question of how a registered error type gets a URL at all. And the test suite asserts the exact standard type URI rather than just the status, so a conformant resolver raising a correctly-mapped method error would fail it. I brought that up informally in w3c/did-resolution-test-suite#9.Preview | Diff