zed-industries/zed · error
wsl.exe stdin upload failed (status {:?}): {}
Error message
wsl.exe stdin upload failed (status {:?}): {} What it means
During stream_file_into_wsl, the wsl.exe child process that receives file bytes on stdin exited with a non-success status; the status and stderr are embedded in this error to explain the failed upload.
Source
Thrown at crates/remote/src/transport/wsl.rs:377
.spawn()
.context("failed to spawn wsl.exe for stdin upload")?;
let mut stdin = child
.stdin
.take()
.context("wsl.exe child did not expose stdin")?;
let copy_result = io::copy(&mut file, &mut stdin).await;
let flush_result = stdin.flush().await;
drop(stdin);
let output = child
.output()
.await
.context("failed to await wsl.exe stdin-upload child")?;
if !output.status.success() {
let stderr = String::from_utf8_lossy(&output.stderr);
anyhow::bail!(
"wsl.exe stdin upload failed (status {:?}): {}",
output.status.code(),
stderr.trim()
);
}
copy_result.with_context(|| {
format!("failed to write {} into wsl.exe stdin", src_path.display())
})?;
flush_result.context("failed to flush wsl.exe stdin")?;
Ok(())
}
async fn extract_and_install(
&self,
tmp_path: &RelPath,
dst_path: &RelPath,View on GitHub (pinned to f4178619ac)
Solutions
- Check disk space and permissions inside the WSL distribution
- Re-run the upload; transient wsl.exe failures often succeed on retry
- Verify wsl.exe and the target distribution are healthy (`wsl -l -v`)
- Inspect the captured stderr in the error for the wsl-side failure
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at crates/remote/src/transport/wsl.rs:377 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/61420743ad92aca1.
Report an issue: GitHub.