Troubleshooting: verification
Stuck in pending
It is not stuck. pending means the request exists and the holder has not responded.
Consent and presentation happen in the holder's wallet. Until then, pending is correct.
Check the holder actually received the request — a QR code that was never rendered produces this state indefinitely. Set your own overall deadline and cancel explicitly when a user abandons the flow.
Rejected, and I do not know why
A rejection means the presentation did not satisfy the policy. Common reasons: the credential was revoked, it was not of a type the policy accepts, it was too old for the policy's maximum age, or holder binding was required and not satisfied.
Be careful how much of this you show the person in front of you — explaining exactly which condition failed can
disclose more than they chose to present. "We could not verify this" plus a logged x-ms-request-id is usually
the right balance.
I cannot ask for the claim I need
By design. Runtime callers name a policy, not claims. If the claim you need is not in the policy, change the policy — which puts the decision with whoever owns the risk rather than with whatever called the API.
404 on the policy
Check the identifier, and check the environment. A policy created in Sandbox is not visible to a Production key, and reports as not found rather than forbidden.
Also check it is not suspended — a suspended policy cannot start new verifications.
Verification expired
Nobody responded in time. Create a new one if the user is still there.
If this happens often, the request may not be reaching holders promptly, or your display of it is easy to miss.