bcgov / bc-wallet-mobile

BC Wallet to hold Verifiable Credentials
Apache License 2.0
59 stars 45 forks source link

Revocation delay #2064

Open knguyenBC opened 1 month ago

knguyenBC commented 1 month ago

Description of problem

The reissuance of both the Person credential and the LSBC member credential does NOT revoke the older credential immediately.

Oddly enough, for the Person credential, the revocation message sent over the connection will be sent.

Expected behavior

Credentials should revoke immediately after issuance of the new ones

Steps to reproduce

Screenshots and/or log output

Environment

Build #: 1792

Android Device Model: Pixel 8

iOS Device Model: iPhone SE

Workaround

none

Severity

WadeBarnes commented 1 month ago

There is a long standing issue with the LSBC agent's wallet that started a few years back with an out of sync issue. Revocation entries were created, but they could not be written to the ledger, so the wallet and the ledger got out of sync. Ian created a fix that allowed us to sync the records retroactively. This allowed us to permanently fix LSBC's DEV and TEST instances, however we were unable to permanently fix the issue in PROD. A second fix (workaround) was put in place in aca-py so it automatically invoked the retro-active resync code whenever there was an error writing a revocation entry to the ledger.

Not saying it's the case, but you might be seeing a possible side affect due to this process. To rule this out as an issue we'd need to monitor the ledger and see if there are any timing issues with revocation entries being written to the ledger during the revoke and re-issue process.