@@ -718,12 +718,15 @@ <h3>Validate Algorithm</h3>
718718 </ li >
719719 < li >
720720Dereference the `statusListCredential` URL, and ensure that all
721- proofs verify successfully. If the dereference fails, or if any of the proof
722- verifications fail, return a validation error.
721+ proofs verify successfully. If the dereference fails, raise a
722+ < a href ="#STATUS_RETRIEVAL_ERROR "> STATUS_RETRIEVAL_ERROR</ a > . If any of the
723+ proof verifications fail, raise a
724+ < a href ="#STATUS_VALIDATION_ERROR "> STATUS_VALIDATION_ERROR</ a > .
723725 </ li >
724726 < li >
725- Verify that the |status purpose| matches the
726- `statusPurpose` value in the |statusListCredential|.
727+ Verify that the |status purpose| is equal to the
728+ `statusPurpose` value in the |statusListCredential|. If the values are not
729+ equal, raise a < a href ="#STATUS_VALIDATION_ERROR "> STATUS_VALIDATION_ERROR</ a > .
727730 </ li >
728731 < li >
729732Let |compressed bitstring| be the value of the
@@ -813,6 +816,54 @@ <h3>Bitstring Expansion Algorithm</h3>
813816 </ ol >
814817 </ section >
815818
819+ < section class ="normative ">
820+ < h3 > Processing Errors</ h3 >
821+
822+ < p >
823+ The algorithms described in this specification throw specific types of errors.
824+ Implementers might find it useful to convey these errors to other libraries or
825+ software systems. This section provides specific URLs, descriptions, and error
826+ codes for the errors, such that an ecosystem implementing technologies described
827+ by this specification might interoperate more effectively when errors occur.
828+ </ p >
829+
830+ < p >
831+ When exposing these errors through an HTTP interface, implementers SHOULD use
832+ [[RFC9457]] to encode the error data structure. If [[RFC9457]] is used:
833+ </ p >
834+
835+ < ul >
836+ < li >
837+ The `type` value of the error object MUST be a URL that starts with the value
838+ `https://www.w3.org/ns/credentials/status-list#` and ends with the value in the
839+ section listed below.
840+ </ li >
841+ < li >
842+ The `code` value MUST be the integer code described in the table below
843+ (in parentheses, beside the type name).
844+ </ li >
845+ < li >
846+ The `title` value SHOULD provide a short but specific human-readable string for
847+ the error.
848+ </ li >
849+ < li >
850+ The `detail` value SHOULD provide a longer human-readable string for the error.
851+ </ li >
852+ </ ul >
853+
854+ < dl >
855+ < dt id ="STATUS_RETRIEVAL_ERROR "> STATUS_RETRIEVAL_ERROR (-128)</ dt >
856+ < dd >
857+ Retrieval of the status list failed. See Section
858+ < a href ="#validate-algorithm "> </ a > .
859+ </ dd >
860+ < dt id ="STATUS_VALIDATION_ERROR "> STATUS_VALIDATION_ERROR (-129)</ dt >
861+ < dd >
862+ Validation of the status entry failed. See Section
863+ < a href ="#validate-algorithm "> </ a > .
864+ </ dd >
865+ </ dl >
866+ </ section >
816867 </ section >
817868
818869 < section class ="informative ">
0 commit comments