{"record":{"id":"61420743ad92aca1","repo":"zed-industries/zed","slug":"wsl-exe-stdin-upload-failed-status","errorCode":null,"errorMessage":"wsl.exe stdin upload failed (status {:?}): {}","messagePattern":"wsl\\.exe stdin upload failed \\(status (.+?)\\): (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/remote/src/transport/wsl.rs","lineNumber":377,"sourceCode":"            .spawn()\n            .context(\"failed to spawn wsl.exe for stdin upload\")?;\n        let mut stdin = child\n            .stdin\n            .take()\n            .context(\"wsl.exe child did not expose stdin\")?;\n\n        let copy_result = io::copy(&mut file, &mut stdin).await;\n        let flush_result = stdin.flush().await;\n        drop(stdin);\n\n        let output = child\n            .output()\n            .await\n            .context(\"failed to await wsl.exe stdin-upload child\")?;\n\n        if !output.status.success() {\n            let stderr = String::from_utf8_lossy(&output.stderr);\n            anyhow::bail!(\n                \"wsl.exe stdin upload failed (status {:?}): {}\",\n                output.status.code(),\n                stderr.trim()\n            );\n        }\n\n        copy_result.with_context(|| {\n            format!(\"failed to write {} into wsl.exe stdin\", src_path.display())\n        })?;\n        flush_result.context(\"failed to flush wsl.exe stdin\")?;\n\n        Ok(())\n    }\n\n    async fn extract_and_install(\n        &self,\n        tmp_path: &RelPath,\n        dst_path: &RelPath,","sourceCodeStart":359,"sourceCodeEnd":395,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/remote/src/transport/wsl.rs#L359-L395","documentation":"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.","triggerScenarios":"Thrown at crates/remote/src/transport/wsl.rs:377 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}