Sending P2SH transaction with non-standard script I'm trying to send transaction with script:

ScriptSig: OP_PUSHDATA&lt;Sig&gt; OP_PUSHDATA&lt;Data1&gt; OP_PUSHDATA&lt;Data2&gt; OP_PUSHDATA&lt;Data3&gt; OP_PUSHDATA&lt;RedeemScript&gt;

Since the data is less than 75 bytes in the raw transaction performed direct pushes.

RedeemScript: 2OP_DROP OP_2DROP OP_PUSHDATA&lt;PubKey&gt; OP_CHECKSIG

RedeemScriptHash160 of 6d6d2202ada9884dbd1e8bd90968ba66256f017cd77d83595027f7929ae3537f98c92d4aac=738292fc46dd7af803bd56035d0988af96a31681

ScriptPubKey: OP_HASH160 &lt;redeemScriptHash&gt; OP_EQUAL

But I get error when sending raw transaction:


  code=-26, message=16: mandatory-script-verify-flag-failed (Script
  evaluated without error but finished with a false/empty top stack
  element)


Could someone help to understand what is wrong with that script?
This this my transaction:

020000000001012f15356f4dfb7f48a91a72f5ff1071f72cb5fe4acc29e98ff5ae17a008a01dba000000007C160014ac09dd336a6fc10034fc44dcb706855668921ce7141f8b0800ffc1765400038d78055c545df3ff5d4a141f8b0800ffc1765400038d78055c545df3ff5d4a141f8b0800ffc1765400038d78055c545df3ff5d4a246d6d2202ada9884dbd1e8bd90968ba66246f017cd77d83595027f7929ae3537f98c92d4aacffffffff01c005d9010000000017a914738292fc46dd7af803bd56035d0988af96a3168187024830450221009108d4e65a34fb50cd3283b6386a679f0dfc2b5fe97e3b3c3f6b8320814b3a2902204631daf2bb93605c9e079750092f304966b69fe28ce7701f4bc677714bca23af012102ada9884dbd1e8bd90968ba66256f017cd77d83595027f7929ae3537f98c92d4a00000000

{
  "result": {
    "txid": "441cf52028ee0acc8b4076681c7fd46dad03501be62c6b0050ca59090fa52973",
    "hash": "dad2b4c56556b74d87243149ca3384ce04584d3bd8d21d80e291c4f9eed7e3f8",
    "version": 2,
    "size": 317,
    "vsize": 235,
    "locktime": 0,
    "vin": [
      {
        "txid": "ba1da008a017aef58fe929cc4afeb52cf77110fff5721aa9487ffb4d6f35152f",
        "vout": 0,
        "scriptSig": {
          "asm": "0014ac09dd336a6fc10034fc44dcb706855668921ce7 1f8b0800ffc1765400038d78055c545df3ff5d4a 1f8b0800ffc1765400038d78055c545df3ff5d4a 1f8b0800ffc1765400038d78055c545df3ff5d4a 6d6d2202ada9884dbd1e8bd90968ba66246f017cd77d83595027f7929ae3537f98c92d4a OP_CHECKSIG",
          "hex": "160014ac09dd336a6fc10034fc44dcb706855668921ce7141f8b0800ffc1765400038d78055c545df3ff5d4a141f8b0800ffc1765400038d78055c545df3ff5d4a141f8b0800ffc1765400038d78055c545df3ff5d4a246d6d2202ada9884dbd1e8bd90968ba66246f017cd77d83595027f7929ae3537f98c92d4aac"
        },
        "txinwitness": [
          "30450221009108d4e65a34fb50cd3283b6386a679f0dfc2b5fe97e3b3c3f6b8320814b3a2902204631daf2bb93605c9e079750092f304966b69fe28ce7701f4bc677714bca23af01",
          "02ada9884dbd1e8bd90968ba66256f017cd77d83595027f7929ae3537f98c92d4a"
        ],
        "sequence": 4294967295
      }
    ],
    "vout": [
      {
        "value": 0.31,
        "n": 0,
        "scriptPubKey": {
          "asm": "OP_HASH160 738292fc46dd7af803bd56035d0988af96a31681 OP_EQUAL",
          "hex": "a914738292fc46dd7af803bd56035d0988af96a3168187",
          "reqSigs": 1,
          "type": "scripthash",
          "addresses": [
            "2N3mz7o8v3YT4arXdQ5p8So6q3FUGjhUpEE"
          ]
        }
      }
    ]
  },
  "error": null,
  "id": "curltext"
}
Before the redeem script is executed, the stack looks like this (from top to bottom): TRUE, Data3, Data2, Data1, Sig. The TRUE on top of the stack comes from OP_EQUAL.

Now the redeem script runs and you drop the top three elements from the stack and then add PubKey, leaving you with PubKey, Data1, Sig. When OP_CHECKSIG runs now it uses Data1 as Signature instead of Sig which makes it fail. At the end the stack is FALSE, Sig. The top element of the stack is FALSE which makes the transaction fail.