-
Notifications
You must be signed in to change notification settings - Fork 520
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot receive proof from BC Wallet #3576
Comments
Tried this myself with askar (same BC Wallet version as Ian's screenshot)
and with remote debugging on the BC Wallet I get these logs
|
So either problems with the tails server, or a problem with the format of the file? Given this is intermittent (although consistent with |
I was able to manually download this file (from the error logs above):
|
Does that error indicate that the Wallet is unable to get the tails file? Is it possible that it is a timing issue? For example, does waiting 5 minutes before doing the presentation with askar-anoncreds make a difference? Its very odd that the problem is with getting the tails file. |
There's no issues with the showcase demo (https://digital.gov.bc.ca/digital-trust/showcase/), so it's possibly related to an aca-py update? Although I'm not sure what ... The tails file is available and I'm able to manually download it from the tails server, so it looks like an issue on the BC Wallet side, either with downloading or saving the tails file (the error message is specifically looking for the saved file). Maybe a bad character in the file name? |
Would probably be worthwhile to update the showcase demo (or a dev or test version of it) to the latest aca-py, and to configure it to use an anoncreds wallet. |
Any difference in the naming style? I recall a change to the tails server and API a while go by @dbluhm and team a while ago, but not the timing. It was a backwards compatible, change IIRC, so shouldn’t be an issue. Perhaps look for changes in the tails file handling on the ACA-Py side? Its weird that it is inconsistent with the askar wallet type and consistent with the askar-anoncreds. |
I've been using VCAuth-N on ACA-Py 1.2.3 for a while and no issues with proofs there from what I've seen, Traction is on 1.2.3 in dev as well (all that with |
@loneil how do you get the BC Wallet debug logs? |
@ianco — can you try 1.2.3 and askar/askar-anoncreds with BC Wallet? |
OK |
I tried waiting for a few minutes in between each step - connecting, issuing the credential and requesting the proof. With |
Same behaviour with aca-py 1.2.3 |
Debug log for a "Schema not provided for ID" error. Note that from the logs I see ... and earlier on in the log: |
Maybe somewhat related to openwallet-foundation/credo-ts#2206. I do know that |
We're not revoking anything, we're sending a proof request and the holder has a valid/un-revoked credential |
I just mean the way it seems to be querying for anoncreds objects. I don't know anything about the credo storage. There is a comment about them being stored both as qualified and unqualified dids. |
Ah ok got it. Anyways I think there are 2 separate errors we are dealing with - the tails file download (which affects anoncreds and also sometimes affects askar) and the schema id error (which seems to be anoncreds specific). |
After some investigation with @ianco it seems that credo is failing to handle proofs for anoncreds. Running acapy (with the above setup) and the wallet locally I'm able to pinpoint the function that is throwing the error and it is bubbling up from a credo call for accepting the proof. I'm seeing the below error consistently across my testing. It seems that locally the wallet is able to resolve the tails file issue on it's own, I haven't seen that particular error in my testing. There is a PR that was just merged with an upgrade to credo 0.5.13, which mentions changes to the anoncreds module Credo docs. Next steps will be to test with the latest changes and see if the issue persists. |
With some further testing, I believe there are two separate issues. The tails file issue - this seems to happen periodically when running aca-py/faber on both askar and anoncreds wallets. When responding to a proof, I get a "file not found" error when the wallet is looking for the tails file. If I re-submit the proof, or send a new proof request, the BC wallet seems to get past this issue. (So likely just a timing issue between downloading the tails file and then looking for it on the filesystem?) For an askar wallet, the next step is to submit the proof successfully. For anoncreds, the next step is to run into the "schema not provided for id" error. The "schema not provided for id" error is preventing any proof from being validated using anoncreds. PS I've been testing this afternoon with BC Wallet |
That makes sense. Now we have to solve the schema ID problem. Hopefuly the BC Wallet folks can help with figuring out what is going wrong. |
Is it about the unqualified DID at the start of the identifier? It would be good to know what the format of the Schema ID is for the askar wallet — the one that is working. |
It should be the same. I believe credo may be handling it differently. They have an Anoncreds format service that only allows qualified identifiers and a legacy indy format service that should handle the un-qualified identifiers. It seems like both projects have a bit of a problem. acapy should only have qualified identifiers for anoncreds and credo should be able to handle unqualified identifiers when it encounters them in anoncreds. I don't really know what is wrong or right. acapy always has represented did:sov's as unqualified in anoncreds and handles them fine. |
@cvarjao — this is pretty urgent for us to get resolved across the communities. We need to get as simple as possible an example of this failing, bring together the maintainers for the two projects, and make a decisions on actions to be taken. It is still not clear to me exactly what the issue, so the first step of getting a demonstration of the point of failure is crucial. |
Per @cvarjao request in RC — do we have a way to test this with a “plain” credo instance — without Bifold/BC Wallet? Also with the Indy VDR Proxy that BC Wallet uses. |
What's the state of the Credo backchannel in OATH? Would be good if we could setup an interoperability test ... |
I was thinking that, but we would have to update the ACA-Py side to use the |
The acapy --> credo test are working decent https://allure.vonx.io/allure-docker-service-ui/projects/acapy-b-credo. It runs a decent amount of tests. Just have to run the same as the acapy-anoncreds tests with credo. I was working on adding the did:sov prefix to the anoncreds id's as a much larger change. I could try and pull just that change out and we could try and test it with the wallet. Shouldn't take a long time.
|
(Not sure if this is an aca-py issue or a BC Wallet issue.)
Run a localtunnel instance to expose faber's aca-py port:
Then run the faber demo agent (make sure to use the url from the above command, and make sure the agent port numbers match):
Scan the displayed QR code to connect the BC Wallet to the faber agent, and then issue a credential from faber to the BC Wallet (menu option 1) - you should be able to accept and receive the credential in the BC Wallet.
(Note - if you get a "connection refused" error in localtunnel, just try again - this happens if the server is too busy.)
Now request a proof from the BC Wallet (menu option 2) - in BC Wallet try to "Share" the info, you should see the following error:
Unable to accept proof request. Error code 1027 - The file "..." couldn't be opened because there is no such file
This error happens consistently with the
askar-anoncreds
wallet, and happens periodically withaskar
The text was updated successfully, but these errors were encountered: