Claude: Tracking flake observed in pipeline 125516.
Failure
Job: https://app.circleci.com/pipelines/github/ethereum-optimism/optimism/125516/workflows/c482ad78-69f5-4051-ad85-f2ce1adcf4af/jobs/5062361
assertions.go:387:
Error Trace: op-acceptance-tests/tests/supernode/interop/head_progression_test.go:89
Error: "9" is not greater than or equal to "10"
Test: TestSupernodeInterop_SafeHeadProgression
--- FAIL: TestSupernodeInterop_SafeHeadProgression (31.97s)
Suspected root cause (to be confirmed by fix agent)
After dsl.CheckAll(...) confirms the CL reached CrossSafe = finalTargetBlockNum (10), the test immediately reads the EL safe label via sys.L2ELA.BlockRefByLabel(eth.Safe) and asserts it is >= 10. The EL safe label is updated asynchronously through the engine API forkchoice flow, so there is a small window where the CL has marked the block cross-safe but the EL safe label still trails by one block.
Log evidence from the failing run:
INFO l2_cl.go:283 Chain advanced name=sequencer chain=902 label=safe target=10 target=10 at 23:49:26.233
- Assertion fired at
23:49:26.242 with safeA.Number == 9
Fix direction
Replace the immediate EL label read at lines 87–90 (and likely similar reads later in the test) with a polling wait (e.g. ReachedFn or equivalent helper) that waits for the EL safe label to catch up to finalTargetBlockNum before asserting.
A fix PR is in progress.
Claude: Tracking flake observed in pipeline 125516.
Failure
Job: https://app.circleci.com/pipelines/github/ethereum-optimism/optimism/125516/workflows/c482ad78-69f5-4051-ad85-f2ce1adcf4af/jobs/5062361
Suspected root cause (to be confirmed by fix agent)
After
dsl.CheckAll(...)confirms the CL reachedCrossSafe = finalTargetBlockNum (10), the test immediately reads the EL safe label viasys.L2ELA.BlockRefByLabel(eth.Safe)and asserts it is>= 10. The EL safe label is updated asynchronously through the engine API forkchoice flow, so there is a small window where the CL has marked the block cross-safe but the ELsafelabel still trails by one block.Log evidence from the failing run:
INFO l2_cl.go:283 Chain advanced name=sequencer chain=902 label=safe target=10 target=10at23:49:26.23323:49:26.242withsafeA.Number == 9Fix direction
Replace the immediate EL label read at lines 87–90 (and likely similar reads later in the test) with a polling wait (e.g.
ReachedFnor equivalent helper) that waits for the EL safe label to catch up tofinalTargetBlockNumbefore asserting.A fix PR is in progress.