Skip to content
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

"No Matching Key" Errors on iOS When Using session.ping After QR Code Scanning #5295

Open
IsaccoSordo opened this issue Aug 23, 2024 · 2 comments
Labels
type: bug Something isn't working

Comments

@IsaccoSordo
Copy link

Describe the bug
Hi all,

In our SDK, which you can check out here, we use session.ping to verify a wallet’s readiness.

Our flow works as follows:

  1. When a user initiates a request to a wallet, we display a "Request sent" toast notification.
  2. Before sending the actual request, we issue a session.ping to ensure the wallet is ready to approve or reject it.
  3. If the wallet is ready, and the session.ping resolves, we update the toast notification to display "Awaiting confirmation from wallet."

This process works well generally, but we’ve noticed that on iOS devices, when a user scans the QR code, the ping triggers "No matching key" errors in the console.

I’ve reproduced this issue using a simplified Stackblitz repo, which you can access here. Note that the project ID is missing.
For testing, I used TrustWallet, as it is available on both Android and iOS.

SDK Version (if relevant)

  • Client: signClient
  • Version: 2.11.2 (BeaconSDK), 2.15.1 (Example DApp)

To Reproduce
Steps to reproduce the issue:

  1. Pair a wallet by scanning a QR code with an iOS device.
  2. Send a ping before sending a request.

Expected Behavior
"No matching key" errors should not appear in the console.

Device Used for Testing

  • Device: iPad Air
  • OS: iPadOS 17.6
  • TrustWallet
  • Version: 11.12.0
@IsaccoSordo IsaccoSordo added the type: bug Something isn't working label Aug 23, 2024
@ganchoradkov
Copy link
Member

thanks for the report @IsaccoSordo, I will investigate it.

Before sending the actual request, we issue a session.ping to ensure the wallet is ready to approve or reject it.

Generally, this step isn't required and it might actually degrade the UX because the ping would not resolve unless the wallet is online and reachable. If you just send the request, without the ping, the wallet would be booted via deep link and the users should be able to approve/reject the request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants