MetaMask / MetaMask/metamask-extension
[Bug]: Attempting to sign via Safe frontend via Ledger Hardware Wallet returns "blind signing disabled" error on large transactions
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 13.2k
- Forks
- 5.6k
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 451
Description
I'm sharing on behalf of a friend. Apologies for not having all the finer details.
**Describe the bug**
When attempting to sign a large transaction (e.g. a transaction where the data is >96713 chars), MetaMask says that **blind signing is disabled** even though it's not.
These txns could be signed successfully a month ago, now they fail.
**Facts:**
- Ledger Nano X.
- MetaMask fully up to date.
- Ledger Firmware fully up to date.
- User can still sign other transactions that are shorter / more "normal". It's just the big ones that cause issues.
- Same transaction via Rabby fails as well but with a different error message ("Invalid Data"). User states it "has always been this way."
- Same transaction via other wallets generally just time out (silently.)
- Same transaction from Gnosis Safe frontend -> Ledger Live application DOES allow the txn to be successfully signed.
Based on the information available, I suspect that something was updated relatively recently with either MetaMask or the underlying Ledger library that prevents these transactions from being able to be signed now.
It may be something that MetaMask recently updated but Rabby updated a long time ago.
It's likely something around the size or length of the data. The "blind signing" error is NOT because blind signing is turned off, but because Ledger rejected the data (or the libraries figured Ledger rejected the data.) Rabby returns a different error ("invalid data") but the root cause is likely the same.
**Expected behavior**
Users should be able to sign a (large) transaction (one with a lot of data) via their Ledger.
**Steps to reproduce**
1. Construct a sizable txn via Gnosis Safe frontend
2. Attempt to sign via Ledger via MetaMask
3. Transaction never makes it to the Ledger, see error in MetaMask
**Where was this bug found?**
Live version (from official store)
**Version**
13.22.0
**Build type**
None
**Browser**
Brave
**Operating system**
Linux
**Hardware wallet**
Ledger
**Additional context**
Mostly sharing in case this keeps cropping up in other ways. This is something power users disproportionately experience and these users are more likely to find work-arounds than report.
**Severity**
When users are unable to sign via MetaMask they don't use MetaMask. In this case, the user had never tried to sign from Safe -> Ledger Live before. They will likely continue to do that in the future, even for txns that can be successfully signed via MetaMask.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source files or tests are named. Start by reproducing the failure with MetaMask 13.22.0, a Ledger Nano X, and a transaction whose data exceeds 96713 characters, then compare signing through the Safe frontend, MetaMask, and Ledger Live. Done means identifying why the large transaction is rejected as blind signing disabled and adding coverage for the affected signing path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- blockchain, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 42/100