Skip parallel suspension when checkpoint is nil

The triggering entry in the parallel-suspend path stored
se.Checkpoint into innerCheckpoints unconditionally, while
the sibling loop already guarded otherSE.Checkpoint != nil.
A nil entry would later cause restoreNestedSuspended to
dereference innerCP.AgentName and panic. Apply the same
guard so a malformed SuspendedError falls through to the
regular result-collection path instead of poisoning the
checkpoint map.

Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
This commit is contained in:
Aurélien Sibiril
2026-04-26 23:21:50 +02:00
parent fa56334c1f
commit e5e722ea83

View File

@@ -976,7 +976,7 @@ func executeParallel(
continue continue
} }
se, ok := errors.AsType[*SuspendedError](entry.err) se, ok := errors.AsType[*SuspendedError](entry.err)
if ok { if ok && se.Checkpoint != nil {
innerCheckpoints := make(map[string]*Checkpoint) innerCheckpoints := make(map[string]*Checkpoint)
var completed []CompletedCall var completed []CompletedCall