The OpenRPC schema from getopenrpcinfo declares every STR_HEX value with the pattern ^[0-9a-fA-F]+$. That pattern rejects the empty string, but the node both returns and accepts empty hex. For example:
scriptSig.hexis""for native segwit input (decoderawtransaction,getrawtransaction, etc)decodescript ""succeeds
So a client that validates traffic against the schema rejects valid requests and responses.
This changes the pattern to ^([0-9a-fA-F]{2})*$ (zero or more hex-encoded bytes)