Skip to content

[BUG] Trezu - Ledger: Ledger device continues signing after Hot Connector modal is dismissed #172

@rknearn-qa

Description

@rknearn-qa

Summary

When a user interrupts an in-progress Ledger transaction by clicking outside the Hot Connector modal, the UI marks the transaction as failed, but the Ledger device continues the signing flow. Completing the action on the Ledger afterward causes the Ledger device to freeze. The UI and hardware wallet states become desynchronized, which should not occur.

Preconditions:

  • User is connected to Trezu via Ledger
  • Ledger device is unlocked and ready to sign transactions
  • Hot Connector modal is used for transaction signing

Steps To Reproduce

  1. Initiate any transaction/request in Trezu
  2. While the signing request is active, click outside the Hot Connector iframe/modal

Actual Result:

  • Transaction is marked as failed/cancelled in the UI
  • Ledger device continues waiting for/signing the request
  • After attempting to complete the action on the Ledger:
  • Ledger device freezes

Image

ledger.mp4

Expected Result:

  • Dismissing the Hot Connector modal should:

    • Properly cancel the signing request
    • Send a cancel/abort signal to the Ledger device
    • Ensure UI and Ledger states remain fully synchronized
  • Ledger device should never continue signing after UI cancellation

Special Notes:

Possible Root Cause:

* Clicking outside the Hot Connector modal likely closes the UI without properly invoking a **transaction cancellation handler** for the Ledger signing session.
* Missing or improper cleanup of the Ledger signing promise/session may leave the device in an unresolved signing state, leading to a firmware/UI freeze.

Workarounds:

  • None
  • User must disconnect/reconnect the Ledger device to recover

Repro Rate:

Always

Setup - OS - Browser - Environment

  • OS / Devices: Windows 11 (x64)
  • Screen resolution(s): 1366 x 768
  • Browser(s) + version(s): Chrome (144.0.7559.97), Mozilla Firefox (147.0.2), Brave (1.86.148)
  • Wallet: Ledger
  • App environment: Staging (trezu.app)
  • Near Network: Mainnet

Resources & Additional Notes

Impact:

User Impact:

  • Users may experience Ledger freezes, forcing device reconnection or restart.
  • High risk of confusion and loss of trust during transaction signing.

System Impact:

  • UI and hardware wallet transaction states become inconsistent.
  • Unsafe interruption handling in a critical signing workflow.

Business / Release Risk:

  • Severe risk for production release involving Ledger users.
  • Potential increase in support tickets and reputational risk due to perceived wallet instability.

QA Verdict:

Verdict: ❌ Release Blocker
Rationale:

  • Hardware wallet signing flows must be atomic and safely cancellable.
  • Any scenario that freezes a Ledger device represents an unacceptable risk for release.

Recommendation:

  • Disable closing the Hot Connector modal while a Ledger signing request is active
  • Ensure explicit transaction abort handling is sent to Ledger on UI dismissal
  • Add UI guardrails (loader / modal lock) during hardware signing
  • Add automated QA coverage for interrupted hardware-wallet flows

Priority

🔴 P0 : Critical

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions