Skip to content

Issuing: Take the IDs of issued credentials from the store - #613

Draft
gp-iaik wants to merge 1 commit into
release/5.9.2-rcfrom
fix/issued-store-entry-ids
Draft

gp-iaik wants to merge 1 commit into
release/5.9.2-rcfrom
fix/issued-store-entry-ids

Conversation

@gp-iaik

@gp-iaik gp-iaik commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Stacked on release/5.9.2-rc.

On a device, issuing a PID as SD-JWT and mdoc at once showed only one of them on the result screen: resolveNewStoreEntryIds timed out waiting for 2 new store entries, found 1. After storing, ProvisioningService waited up to 3 s for the session's hot store to show the new entries. The hot store shows them only once it has decoded the whole container again, which took 15–21 s on that device.

Changes

  • PersistentSubjectCredentialStore remembers the ID it assigned to each of the last 32 stored entries, looked up by identity (===).
  • WalletSubjectCredentialStore.storeEntryIdOf(entry):
    • returns null by default;
    • is implemented by the persistent store and delegated by the hot store.
  • ProvisioningService takes the IDs of the entries that HolderAgent returns. These are the instances the store received.
    • Applies to resumeWithAuthCode, loadCredentialWithOffer and keepCredentialsUnderReview.
    • Waiting for the hot store remains the fallback for an entry the store does not know.

Checks:

  • Ran :androidApp:compileDebugKotlin, :shared:compileKotlinMetadata and :shared:testAndroidHostTest; all pass.
  • New StoreEntryIdTest: the IDs of two stored credentials match the container.

Not done: issuing on a device; iOS.

🤖 Generated with Claude Code

After storing issued credentials, ProvisioningService waited up to 3 s for the session's hot store to show as many new entries as it stored, and used the IDs it found. The hot store shows them only once it decoded the whole container again, which took 15 to 21 s on a device, so the result screen showed one of two issued credentials ("resolveNewStoreEntryIds timed out waiting for 2 new store entries, found 1").

PersistentSubjectCredentialStore now remembers the ID it assigned to each of the last stored entries, by identity, and WalletSubjectCredentialStore.storeEntryIdOf returns it for the entry that HolderAgent returns. Waiting for the hot store remains the fallback for an entry that is not known.
@gp-iaik
gp-iaik force-pushed the fix/issued-store-entry-ids branch from 49b519f to 937e8b2 Compare October 30, 2026 10:08
@gp-iaik
gp-iaik changed the base branch from feature/launchpad-2026-post to release/5.9.2-rc October 30, 2026 10:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant