# Shared-Publisher Rollback Scenarios
## 🟥 Scenario 1: Invalid Block
**Description:**
A sequencer published a block that includes an xCall, but the block is invalid (state transition or false xCall inclusion).
Detection happens async in 2 stages:
* SP doesn't include the block
* At some point a ZK invalidity proof is submitted
**Why it’s invalid:**
Block invalidity can't be included in the superblock
**Outcome:**
* SP rejects the block
* Dependent blocks are rolled back in the next epoch
* The sequencer is slashed or penalized
* Faulty sequencer is maximally slashed

## 🟨 Scenario 2: Missing xCall
**Description:**
A sequencer publishes a block, but omits an xCall that was previously committed during the 2PC pre-block phase.
**Why it’s invalid:**
The 2PC commit phase guarantees the xCall is expected and must be included. If it’s missing, this breaks synchronous composability and atomicity.
**Outcome:**
* SP rejects the block
* Dependent blocks are immediately (within the epoch) rolled back
* Rolled back blocks are re-produced for the same epoch
* Sequencer may be penalized for non-deterministic execution and/or penalized on the P2P layer (reduces ability for future xCalls)

## 🟧 Scenario 3: Missing Block
**Description:**
A rollup sequencer doesn’t publish a block at all, despite having pre-committed to an xCall as part of a multi-rollup execution.
**Why it’s invalid:**
Synchronous cross-rollup execution relies on timely block publication. Failure to produce the block breaks the atomicity of the transaction bundle.
**Outcome:**
* The SP can't include the block
* Dependent blocks roll back immediately (within the epoch)
* Rolled back blocks are re-produced for the same epoch

## 🟦 Scenario 4: Missing ZK Proof
**Description:**
The sequencer publishes a block that includes xCalls, but fails to submit the zero-knowledge (ZK) proof for that block within the required time.
**Why it’s invalid:**
The SP needs the ZK proof to finalize the block and aggregate it into the superblock. Without the proof, the state transitions are unverified.
**Outcome:**
* SP excludes the block from the aggregated proof
* Dependent blocks roll back immediately (within the epoch)
* Rolled back blocks are re-produced the next epoch
* Faulty sequencer is penalized
