diff --git a/crates/polars-stream/src/nodes/io_sources/csv.rs b/crates/polars-stream/src/nodes/io_sources/csv.rs index ed6f1044fbd2..4c17ce730501 100644 --- a/crates/polars-stream/src/nodes/io_sources/csv.rs +++ b/crates/polars-stream/src/nodes/io_sources/csv.rs @@ -184,11 +184,17 @@ impl SourceNode for CsvSourceNode { } let mut is_finished = true; + let mut did_error = false; + for (outcome, wait_group) in morsel_outcomes.into_iter() { wait_group.wait().await; - is_finished &= !matches!(outcome.decide(), PhaseOutcome::Stopped); + is_finished &= matches!(outcome.decide(), PhaseOutcome::Finished); + did_error |= matches!(outcome.decide(), PhaseOutcome::Error); } + if did_error { + return Ok(()); + } if is_finished { phase_output.outcome.finish(); break;