acoustic-carpenter-78188
03/18/2026, 7:55 PMflytepropeller/pkg/controller/nodes/array/worker.go).
Due to a hardcoded nil being returned on the response channel, errors encountered while reading sub-node outputs were silently discarded, leading to workflows completing successfully with missing or corrupted outputs.
This is a one-character fix that restores correct error propagation and aligns the behavior with the existing node execution handling logic.
---
Fix
Return the actual captured error instead of hardcoding `nil`:
// After
gatherOutputsRequest.responseChannel <- struct {
literalMap map[string]*idlcore.Literal
error
}{literalMap, err}
This mirrors the already-correct behavior used for nodeExecutionRequest earlier in the same worker loop and ensures consistent error handling.
---
Impact
Before
• Output read failures silently ignored
• Workflows succeed with incorrect or missing data
• Downstream task behavior becomes nondeterministic
• Production issues are extremely difficult to diagnose
After
• Output gathering errors are properly propagated
• Workflows fail explicitly and predictably
• Retry / failure semantics behave as expected
• No silent data corruption
This affects all Flyte deployments using ArrayNodes, which is a core execution primitive.
---
How was this patch tested?
• Manually verified error propagation path by inducing output read failures
• Confirmed consistency with nodeExecutionRequest error handling logic
• Ensured workerErrorCollector correctly captures and reports the error after the fix
No new tests were added due to the minimal and localized nature of the change, but the behavior now matches the established and already-tested execution path.
---
Labels
• fixed
---
Checklist
• I updated the documentation accordingly.
• All new and existing tests passed.
• All commits are signed-off.
flyteorg/flyteacoustic-carpenter-78188
03/18/2026, 7:55 PM