Handler not executing
- Verify
discriminator = &EXTERNAL_CALL_HANDLER_DISCRIMINATOR - Allocate sufficient
compute_units
Deserialization errors
- Use
UncheckedAccountfor committed accounts in handler context - Manually deserialize via
try_deserializeon borrowed data - Check account discriminator matches expected type
Transaction failures
- Ensure all handler accounts are listed in
ShortAccountMeta - Match
is_writableflags to actual usage - Increase compute budget for all handlers in the commit
Limitations & considerations
- Handlers execute on base layer and consume base-layer fees
- Standard Solana limits apply (compute, account locks)
- Atomicity: any handler failure reverts the commit
- First two handler accounts are injected (
escrow,escrow_auth)

