I kind of suck at boolean algebra, but: https://github.com/bitcoin/bitcoin/blob/37612099ec7314b15a07d8bac55161ed4e8e7491/src/rpc/rawtransaction.cpp#L1672
Unless I’m mistaken (which is highly likely) the whole thing can’t work (except the edge case where permitsigdata=true
and you have no sig data)