Safe Module transaction simulation failing when decoding batched state validation payloads

Hello everyone,

I am currently configuring a custom Safe Module setup to handle automated multisig transactions and execution validation for an external game state indexer, but I am running into an unexpected transaction simulation failure during batch processing.

For some context on our backend setup, our system logs real-time event sequences and telemetry data generated during automated client testing runs. Our QA team executes script stability checks inside a sandboxed roblox executor workspace to generate performance metrics, which our relayer packages into batched multi-call transactions before relaying them to our Safe smart contract on-chain. We use a custom Guard module to parse these payload hashes and verify execution thresholds prior to finalizing the state change.

The main issue we are encountering is that whenever our relayer submits a batched multi-send payload containing complex nested delegate calls, the transaction simulation engine inside the Safe SDK fails with an invalid byte array error. The individual function calls execute cleanly when tested individually via standard transaction proposals, but the moment they are bundled into a single batch, the Guard module’s internal decoding logic fails to parse the array structure correctly.

Along with the batch decoding error, we are seeing a secondary gas estimation bottleneck on the relayer side. When a transaction simulation fails at the module level, the relayer service repeatedly retries the failed nonce with escalating gas limits rather than dropping the invalid payload, effectively locking up our execution queue until we manually reset the pending transaction stack.

Has anyone else experienced simulation errors or payload decoding failures when evaluating complex multi-send arrays inside a custom Safe Guard module, and what is the recommended approach for safely parsing nested payload data within the module’s execution hook?

Hi @marina6576 , I’m the PM for Safe{Platform} (our API product line). your use case sounds very interesting, I’d be interested in learning more about it. Also to understand your setup a bit more, it would be helpful to see a somewhat minimial example of a transaction batch that then fails. Would you be open to sharing that? You can also reach me on telegram directly with my user chrisdotn.