windmill-labs/windmill · error
wheel RECORD verification failed after install of {req}
Error message
wheel RECORD verification failed after install of {req} What it means
Raised by handle_python_reqs when, after `uv pip install` of a requirement into the cached venv, the installed files' hashes do not match the wheel's RECORD. Windmill verifies to avoid publishing a corrupt shared cache entry; on failure it logs to the job, removes the venv directory, and aborts so the next run reinstalls cleanly.
Source
Thrown at backend/windmill-worker/src/python_executor.rs:3123
"uv pip install of {req} into {venv_p} failed wheel RECORD verification: {verify_err}"
);
append_logs(
&job_id,
&w_id,
format!(
"\nWheel RECORD verification failed after install of {req}: {verify_err}. \
Aborting to avoid publishing a corrupt cache entry."
),
&conn,
).await;
if let Err(rm_err) = tokio::fs::remove_dir_all(&venv_p).await {
tracing::warn!(
workspace_id = %w_id,
"could not remove broken install dir {venv_p}: {rm_err}"
);
}
pids.lock().await.get_mut(i).and_then(|e| e.take());
return Err(Error::from(anyhow!(
"wheel RECORD verification failed after install of {req}"
)));
}
print_success(
false,
s3_push,
&job_id,
&w_id,
&req,
req_tl,
counter_arc,
total_to_install,
start,
&conn, //
)
.await;
View on GitHub (pinned to e474e8803c)
Solutions
- Retry the job — the corrupt venv was deleted and the wheel will be reinstalled
- If it repeats, check the worker's disk or network for corruption/truncation during install
- Pin a different version of the offending package if its wheel is consistently bad
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at backend/windmill-worker/src/python_executor.rs:3123 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/dff8120225ab180f.
Report an issue: GitHub.