Skip to content

[bug]: Session Proposal Timeout Occurs After Approval #205

Open
@ono-eth

Description

@ono-eth

Description

Image

ERROR {"context": "client"} Missing or invalid. Record was recently deleted - proposal: 1746767498888928

We recently migrated from WalletConnect to Reown, and encountered a regression in session handling behavior.

At first, we thought it was an issue on our side, but we confirmed that the same problem also occurs in Reown’s official wallets/rn_cli_wallet implementation.

Even though the session proposal is successfully approved, we observe that a proposal_expire event is triggered 5 minutes later.

This behavior did not occur in @walletconnect/web3wallet: 1.12.3, but has been consistently observed in all versions of Reown

Expected Behavior

Once a session proposal is approved and the session is connected, the proposal should not expire.

Actual Behavior

After successful approval and connection, the proposal_expire event still fires after 5 minutes.

Log

[session proposal] {"id": 1746767498888928, "params": {"expiryTimestamp": 1746767798, "id": 1746767498888928, "optionalNamespaces": {"eip155": [Object]}, "pairingTopic": "13a3cf85f6cdf22152c8dfea303603521884dcc2a90d69846922d20d118b6539", "proposer": {"metadata": [Object], "publicKey": ""}, "relays": [[Object]], "requiredNamespaces": {}}, "verifyContext": {"verified": {"origin": "https://opensea.io", "validation": "UNKNOWN", "verifyUrl": "https://verify.walletconnect.org"}}}

[session approve] {"session": {"acknowledged": false, "controller": "23106d9484df4d859202dcfdf940253ec1d4ac11750097f8a03ebba218f7f570", "expiry": 1747372535, "namespaces": {"eip155": [Object]}, "optionalNamespaces": {"eip155": [Object]}, "pairingTopic": "13a3cf85f6cdf22152c8dfea303603521884dcc2a90d69846922d20d118b6539", "peer": {"metadata": [Object], "publicKey": ""}, "relay": {"protocol": "irn"}, "requiredNamespaces": {}, "self": {"metadata": [Object], "publicKey": ""}, "topic": "1d3440cd3da19921213b21c69f415e8dbd03a58efdacb68a0ca43449b5331fcb", "transportType": "relay"}}

[activate session] {"1d3440cd3da19921213b21c69f415e8dbd03a58efdacb68a0ca43449b5331fcb": {"acknowledged": true, "controller": "23106d9484df4d859202dcfdf940253ec1d4ac11750097f8a03ebba218f7f570", "expiry": 1747372535, "namespaces": {"eip155": [Object]}, "optionalNamespaces": {"eip155": [Object]}, "pairingTopic": "13a3cf85f6cdf22152c8dfea303603521884dcc2a90d69846922d20d118b6539", "peer": {"metadata": [Object], "publicKey": ""}, "relay": {"protocol": "irn"}, "requiredNamespaces": {}, "self": {"metadata": [Object], "publicKey": ""}, "topic": "1d3440cd3da19921213b21c69f415e8dbd03a58efdacb68a0ca43449b5331fcb", "transportType": "relay"}}

 ERROR  {"context": "client"} Missing or invalid. Record was recently deleted - proposal: 1746767498888928

Issue Environment

  • dapps/W3MEthers
  • dapps/W3MEthers5
  • dapps/W3MWagmi
  • wallets/rn_cli_wallet
  • wallets/rn_cli_wallet_068_5
  • In my own code

Output of npx react-native info

System:
  OS: macOS 15.1.1
  CPU: (16) arm64 Apple M3 Max
  Memory: 64.58 GB / 128.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 18.20.4
    path: ~/.nvm/versions/node/v18.20.4/bin/node
  Yarn:
    version: 3.6.4
    path: ~/.nvm/versions/node/v18.20.4/bin/yarn
  npm:
    version: 10.7.0
    path: ~/.nvm/versions/node/v18.20.4/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods: Not Found
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 24.1
      - iOS 18.1
      - macOS 15.1
      - tvOS 18.1
      - visionOS 2.1
      - watchOS 11.1
  Android SDK:
    API Levels:
      - "28"
      - "33"
      - "34"
      - "35"
    Build Tools:
      - 33.0.1
      - 34.0.0
      - 35.0.0
    System Images:
      - android-29 | Google Play ARM 64 v8a
      - android-34 | Google APIs ARM 64 v8a
      - android-35 | Google Play ARM 64 v8a
    Android NDK: Not Found
IDEs:
  Android Studio: 2024.1 AI-241.18034.62.2412.12266719
  Xcode:
    version: 16.1/16B40
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.12
    path: /usr/bin/javac
  Ruby: Not Found
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.74.3
    wanted: 0.74.3
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false

Steps to reproduce

git clone https://github.com/reown-com/react-native-examples.git
cd ./react-native-examples/wallets/rn_cli_wallet

yarn android
  1. User scans the QR code
  2. Session proposal is received by the wallet
  3. User approves the session proposal
  4. Dapp establishes session (Session Connect)
  5. Approximately 5 minutes later, a proposal_expire event is triggered, despite the session already being approved and connected

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions