Skip to content

fix: revoke the participant's credentials when a VPA is disposed - #233

Merged
paullatzelsperger merged 1 commit into
mainfrom
fix/revoke-credentials-on-dispose
Nov 11, 2026
Merged

paullatzelsperger merged 1 commit into
mainfrom
fix/revoke-credentials-on-dispose

Conversation

@paullatzelsperger

@paullatzelsperger paullatzelsperger commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Disposing a VPA never revoked the participant's credentials in the IssuerService. Three things were wrong:

  • The credential query filtered on holder ID = participant context ID, but the IssuerService stores the participant's DID as the holder ID, so nothing matched. QueryCredentialsByType now takes the holder ID separately, and the agent passes the DID from cfm.participant.id.
  • The revoke URL used the tenant's participant context instead of the issuer's.
  • The revoke call passed the verifiable credential's ID instead of the IssuerService credential resource ID.

🤖 Generated with Claude Code

The onboarding agent's dispose never revoked anything. It queried the
IssuerService for credentials whose holder ID is the participant context
ID, but the IssuerService records the credential subject (the
participant's DID) as the holder ID, so the query found nothing. Even
with results, the revoke request put the tenant's participant context in
the path instead of the issuer's, and passed the verifiable credential's
ID where the IssuerService expects the ID of its credential resource.

QueryCredentialsByType now takes the holder ID separately from the
participant context the token is bound to, and the agent passes the DID
from cfm.participant.id. RevokeCredential uses the issuer's participant
context in the path, and the agent revokes the credential resource ID.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@paullatzelsperger paullatzelsperger added the bug Something isn't working label Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants