Manually crafted multisig Tx: non-mandatory-script-verify-flag I'm trying to broadcast a manually crafted and signed transaction. As far as I can tell, the scripts are correct and the signatures pass BIP 66 validation.

However, I keep getting:

{'message': '64: non-mandatory-script-verify-flag (No error)', u'code': -26}


Suspecting the DER encoding, I tried different libs (plus my own ad-hoc code) to no avail. This is the raw transaction in question:

010000000185a08567ea46e4643bcace616519227876b89a364afe9410390196ba0185a7d900000000fd44010047304402202e119d14a6fd920d4444c6d73800609b8a8dfe48bc4c1fe0d2840fef40a26027022041d8f3ec7517b9773879eb5255ef30a457740fa2669f2b33d1c93c6e7894163a014730440220686531e7c640e62a860f499f9582ee72c8581b4827c0f05d9196d6b73722d56402200fa3b7132414092de23b1c7cf31874c21b7b5dea775ae677b8bd3ce5d0dca3830147304402205628c813b01bb0355309400c363c37aaa6d36d5ee6592a0793c77cfd32fd0f3d022017c68684a5748423129a60449344982b7e101aaf7882bf74958ef145631c682e014c695221023abd0b238c5e93e4d1d9f06e9d743941e5d3f23d0b5371a0f87ac56106373829210231e33da7f49dd067b556c04b07fc339b571f144bb8c51b3410e66b143b3e75202102b49c7c0f9d3026fdc3311c61bdb7b92d81ee1d4adf806e0fbfdfac5f5c9b9e7853aeffffffff01204e0000000000001976a9144c477bec69fa6f89d6effdc3b17ab53101c6fa1a88ac00000000


What's wrong with the transaction? I'll provide any additional information necessary.
I was sending an extra signature.

The transaction required 2-of-3, and I sent the 3 signatures. The extra signature was not popped off the stack by OP_CHECKMULTISIG, and the remaining stack looked like this:

EXTRA_SIGNATURE
OP_0 # null-dummy for Bitcoin Core's old bug


The extra signature took the place of the dummy, and bitcoind detected this when verifying the dummy was an OP_0.