Compare commits

...

1 Commits

Author SHA1 Message Date
Ruben Fiszel
b6b9fffb29 fix: resolve skip check crash when first flow node has both skip_if and stop_after_if
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 10:02:44 +00:00

View File

@@ -1099,21 +1099,23 @@ pub async fn update_flow_status_after_job_completion_internal(
|| (flow_jobs.is_some() && (skip_loop_failures || skip_seq_branch_failure)))
&& !(stop_early && stop_early_err_msg.is_some() && !skip_if_stop_early)
{
let is_skipped = if current_module.as_ref().is_some_and(|m| m.skip_if.is_some())
{
sqlx::query_scalar!(
"SELECT kind = 'identity' FROM v2_job WHERE id = $1",
job_id_for_status
)
.fetch_one(db)
.await
.map_err(|e| {
Error::internal_err(format!("error during skip check: {e:#}"))
})?
.unwrap_or(false)
} else {
stop_early && skip_if_stop_early // Mark as skipped when stop_after_if with skip_if_stopped=true
};
let is_skipped_via_skip_if =
if current_module.as_ref().is_some_and(|m| m.skip_if.is_some()) {
sqlx::query_scalar!(
"SELECT kind = 'identity' FROM v2_job WHERE id = $1",
job_id_for_status
)
.fetch_optional(db)
.await
.map_err(|e| {
Error::internal_err(format!("error during skip check: {e:#}"))
})?
.flatten()
.unwrap_or(false)
} else {
false
};
let is_skipped = is_skipped_via_skip_if || (stop_early && skip_if_stop_early);
success = true;
(
true,