did-resolution icon indicating copy to clipboard operation
did-resolution copied to clipboard

Confusing error language in algorithms leading to misimplementation

Open wip-abramson opened this issue 2 months ago • 2 comments

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

wip-abramson avatar Oct 29 '25 13:10 wip-abramson

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

msporny avatar Nov 11 '25 06:11 msporny

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]


w3cbot avatar Nov 11 '25 09:11 w3cbot

Assigning this to @BigBlueHat. Should be pretty straight forward.

wip-abramson avatar Dec 12 '25 16:12 wip-abramson