Overcome ledger nano S hardware restrictions by consolidating iotas to a single address on Ledger Nano S
For some time now the official iota Trinity wallet is compatible with the hardware wallet Ledger Nano S. Although Trinity offers a rather seamless integration, there are still hardware restrictions that can lead to the above error message when trying to send funds.
As this is a rather generic error message you should first check the Trinity error log to see a more detailed description. You can access it via the main menu (Trinity → Error Log).
If you see an entry similar to the one shown below, you are affected by the issue described in this article.
The Ledger Nano S hardware has a very limited amount of available memory. Due to the size of private keys and signatures in the iota environment, it is not possible at the moment to send a transaction that uses funds from more than two addresses (inputs). When sending a transaction you do not have manual control over which addresses are used as inputs and this issue will most likely occur if you have sent funds to your ledger account multiple times using new receive addresses each time. The result of this will be that your funds are spread over many addresses, requiring Trinity to use multiple input addresses when a larger amount of iotas should be sent.
Developers of both Trinity and the Ledger iota app are already discussing possible software fixes, but until then, you will not be able to send your full funds on the Ledger. If you need access to your funds now, there is another way out of this situation, but it will require some manual work and can be a bit tedious (depending on the number of addresses your funds are spread over).
How to fix this situation?
Remember that not all the funds are blocked, but we can still send a transaction with a maximum of two inputs. We will always take two addresses and send their funds to the same single target address until all iotas are consolidated there and sending the full amount will be possible again. While we cannot tell Trinity which input addresses to use for this merge process, we can nudge it to use the ones we want by sending the right amount of iotas.