Interpret a finalized OP withdrawal whose target call failed

An L1 portal finalization transaction can succeed at the outer level yet report failure of the withdrawal’s target call. A bridge support tool needs both outcomes.

Decode the portal’s finalization event

Verify the emitting OptimismPortal and match the indexed withdrawal hash to the L2 MessagePassed event. Decode the event’s success boolean. In the example the portal processed H but the target call returned failure.

WithdrawalFinalized(withdrawalHash = H, success = false)

Record the outer L1 receipt and the target-call result separately. Investigate the target calldata, call value, gas and target contract behavior before crediting the expected application effect. The transaction receipt status alone cannot supply this distinction.

Identify the applicable recovery path

A finalized withdrawal hash cannot simply be finalized again as if it were new. If the route used the cross-domain messenger, inspect its own relay events and replay rules as a separate layer. Those rules may differ from a direct portal call. specs.optimism.io OP Stack specification