Error sending SegWit transaction: error code: -26 using bitcoin-cli I'm trying spend funds that were sent to an SegWit address I created with the bitcoin-cli addwitnessaddress &lt;P2PKH address&gt; command.  The segwit address created was
33uUUt2V76HLcLqbs1Hou2ioofQo3d5kZ2.  I sent a small amount to this address as a test.

{txid: e360a6f86ebbdf0d2c3c86df60d1ad7e95af41248ff9305a48372db519028fcb, vout: 0}


I'm now trying to spend those funds to 3FNYRnLCgbGAaYmhkX1QHaXD5VYyXndpDa.  I created a raw transaction the normal way by specifying inputs and outputs:

bitcoin-cli createrawtransaction '[{"txid":"e360a6f86ebbdf0d2c3c86df60d1ad7e95af41248ff9305a48372db519028fcb","vout":0}]' '{"3FNYRnLCgbGAaYmhkX1QHaXD5VYyXndpDa":0.00451855}'
&gt;&gt; 0200000001cb8f0219b52d37485a30f98f2441af957eadd160df863c2c0ddfbb6ef8a660e30000000000ffffffff010fe506000000000017a9149613523d8525c0c444209b73eefda15101d1750d8700000000

bitcoin-cli signrawtransaction 0200000001cb8f0219b52d37485a30f98f2441af957eadd160df863c2c0ddfbb6ef8a660e30000000000ffffffff010fe506000000000017a9149613523d8525c0c444209b73eefda15101d1750d8700000000 '[{"txid":"e360a6f86ebbdf0d2c3c86df60d1ad7e95af41248ff9305a48372db519028fcb","vout":0,"scriptPubKey":"a914184b69873b307dc7081f2541098aaf4881bac20187","redeemScript":"0014568db227e811df5f502df149c8c9d899492140c9"}]'
&gt;&gt; {"hex": "02000000000101cb8f0219b52d37485a30f98f2441af957eadd160df863c2c0ddfbb6ef8a660e30000000017160014568db227e811df5f502df149c8c9d899492140c9ffffffff010fe506000000000017a9149613523d8525c0c444209b73eefda15101d1750d87024830450221009fe3df8448be56b052bcf81cb3e992ff606a10b1baf94eec49b1bad05914b97c0220752c6823152d0ef59945377a767edba6222a12b6e2b1baabafe498fa4801dea6012103ba8ae62944f27ce7a661866d6837ab3d6dd3fcd62bc6a09be5405074ec2473db00000000","complete": true}


Now I try to send the transaction:

bitcoin-cli sendrawtransaction 02000000000101cb8f0219b52d37485a30f98f2441af957eadd160df863c2c0ddfbb6ef8a660e30000000017160014568db227e811df5f502df149c8c9d899492140c9ffffffff010fe506000000000017a9149613523d8525c0c444209b73eefda15101d1750d87024830450221009fe3df8448be56b052bcf81cb3e992ff606a10b1baf94eec49b1bad05914b97c0220752c6823152d0ef59945377a767edba6222a12b6e2b1baabafe498fa4801dea6012103ba8ae62944f27ce7a661866d6837ab3d6dd3fcd62bc6a09be5405074ec2473db00000000


And get the following error:

error code: -26
error message:
64: non-mandatory-script-verify-flag (Signature must be zero for failed CHECK(MULTI)SIG operation)


I tried sending it through blockchain.info/pushtx in case it was a problem with my wallet but I got the same error.  I tried looking up what the error meant but couldn't find any explanation that would help me figure out what I did wrong.
After writing up this question I finally figured out the answer from here: https://bitcointalk.org/index.php?topic=1680640.0.  I will answer my own question for anyone who might be having the same problem.  It turns out I needed to specify the amount of each input in signrawtransaction.

bitcoin-cli signrawtransaction 0200000001cb8f0219b52d37485a30f98f2441af957eadd160df863c2c0ddfbb6ef8a660e30000000000ffffffff010fe506000000000017a9149613523d8525c0c444209b73eefda15101d1750d8700000000 '[{"txid":"e360a6f86ebbdf0d2c3c86df60d1ad7e95af41248ff9305a48372db519028fcb","vout":0,"amount":0.00541855,"scriptPubKey":"a914184b69873b307dc7081f2541098aaf4881bac20187","redeemScript":"0014568db227e811df5f502df149c8c9d899492140c9"}]'
&gt;&gt; {"hex":"02000000000101cb8f0219b52d37485a30f98f2441af957eadd160df863c2c0ddfbb6ef8a660e30000000017160014568db227e811df5f502df149c8c9d899492140c9ffffffff010fe506000000000017a9149613523d8525c0c444209b73eefda15101d1750d8702473044022006f8822e2a56fb4c9defaca393a0c4ee29a32b4caecc15e457dff1b5993e88290220096b1bae9819d64f2b69a44881c033fb7c9fbde77c9d16347ef2439e831c192d012103ba8ae62944f27ce7a661866d6837ab3d6dd3fcd62bc6a09be5405074ec2473db00000000","complete": true}


This time sending it works:

bitcoin-cli sendrawtransaction 02000000000101cb8f0219b52d37485a30f98f2441af957eadd160df863c2c0ddfbb6ef8a660e30000000017160014568db227e811df5f502df149c8c9d899492140c9ffffffff010fe506000000000017a9149613523d8525c0c444209b73eefda15101d1750d8702473044022006f8822e2a56fb4c9defaca393a0c4ee29a32b4caecc15e457dff1b5993e88290220096b1bae9819d64f2b69a44881c033fb7c9fbde77c9d16347ef2439e831c192d012103ba8ae62944f27ce7a661866d6837ab3d6dd3fcd62bc6a09be5405074ec2473db00000000
f375de743834e041f42a19eceb39fb25b4e6ea5159b5450ea3fdac95d67062dc


For some reason this wasn't necessary for spending regular P2PKH outputs but it seems that for P2SH outputs it is.  I am curious as to why this might be the case and why signrawtransaction didn't throw any errors.  I have to say that the documentation is very poor as https://bitcoin.org/en/developer-reference#signrawtransaction says nothing about including an amount in the parameter #2.