Confusing error language in algorithms leading to misimplementation
For example in the DID Resolution Algorithm see here
And specifically this text:
error object with type set to INVALID_DID
Which makes you think the type should be "INVALID_DID".
Only when you read the Errors section carefully:
The type value of the error object MUST be a URL. Where the values listed in the section below do not define a URL, the values MUST be prepended with the URL https://www.w3.org/ns/did#.
Do you realise type should be https://www.w3.org/ns/did#INVALID_DID.
In the test suite I wrote a wrong test for this, which passed against the universal resolver because it has a wrong implementation. Both of us misinterpreted the spec suggesting we might want to update the text maybe just to specify the full URL?
error object with type set to https://www.w3.org/ns/did#INVALID_DID
The group discussed this at TPAC and noted that the algorithms should be updated to use the full type URL value. For example, change this:
didResolutionMetadata: error object with type set to INVALID_DID
to this:
didResolutionMetadata: error object with type set to
https://w3c.github.io/did-resolution/#INVALID_DID
This was discussed during the #did meeting on 11 November 2025.
View the transcript
w3c/did-resolution#240
wip: moving on
wip: I raised this. There's confusing language how we state the errors should be raised in the spec today.
… I misinterpreted how errors should happen (in my own work)
… Spec text states and error object should have "type set to invalidDID"
… We start with DID object set to "validDID"
… but the problem is that problem details has a different statement
… The values MUST be prepended. The type must be a URL
… I implented incorrectly, and the tests passed. And Markus also did the same, but it shouldn't.
… The error objects' type field MUST be a URL, but "validDID" isn't a URL
… We are linking to the problem details section, but as a developed, two of us independently failed to follow the link.
manu: So the change is just to have a full URL instead of "invalidDID"
wip: Ok. I will do this at some point.
[manu updates issue]
Assigning this to @BigBlueHat. Should be pretty straight forward.