When xCall creates a CallMessageResult it can contain a reply. If no reply Java encodes this as null and uses Nullable RLP and thus also expects null. While it is instead is empty XCall java tries to decode it as a Call Message, which causes it to fail.
In EVM and Cosmwasm it is okey since it handles nullable decoding correctly but parses it to a empty array in solidity and isSome in rust covers both cases automatically.
When xCall creates a CallMessageResult it can contain a reply. If no reply Java encodes this as null and uses Nullable RLP and thus also expects null. While it is instead is empty XCall java tries to decode it as a Call Message, which causes it to fail.
In EVM and Cosmwasm it is okey since it handles nullable decoding correctly but parses it to a empty array in solidity and isSome in rust covers both cases automatically.