{"record":{"id":"95818d4d5541c195","repo":"zed-industries/zed","slug":"working-directory-shell-command-ioerror","errorCode":null,"errorMessage":"Working directory: {} Shell command: `{}`, IOError: {}","messagePattern":"Working directory: (.+?) Shell command: `(.+?)`, IOError: (.+?)","errorType":"exception","errorClass":"TerminalError","httpStatus":null,"severity":"error","filePath":"crates/terminal/src/terminal.rs","lineNumber":1191,"sourceCode":"                let (program, args) = match &shell_params {\n                    Some(params) => (\n                        params.program.clone(),\n                        params.args.clone().unwrap_or_default(),\n                    ),\n                    None => (util::shell::get_system_shell(), Vec::new()),\n                };\n                let subprocess = match spawn_task_subprocess(\n                    program,\n                    args,\n                    env.clone(),\n                    working_directory.clone(),\n                    term.clone(),\n                    events_tx,\n                    &background_executor,\n                ) {\n                    Ok(subprocess) => subprocess,\n                    Err(error) => {\n                        bail!(TerminalError {\n                            directory: working_directory,\n                            program: shell_params.as_ref().map(|params| params.program.clone()),\n                            args: shell_params.as_ref().and_then(|params| params.args.clone()),\n                            title_override: terminal_title_override,\n                            source: std::io::Error::other(format!(\"{error:#}\")),\n                        });\n                    }\n                };\n                (TerminalType::DisplayOnly, Some(subprocess))\n            } else {\n                let alacritty_shell = shell_params.as_ref().map(|params| {\n                    (\n                        params.program.clone(),\n                        params.args.clone().unwrap_or_default(),\n                    )\n                });\n                let pty_options = pty_options(\n                    alacritty_shell,","sourceCodeStart":1173,"sourceCodeEnd":1209,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/terminal/src/terminal.rs#L1173-L1209","documentation":"When spawning a task terminal, the subprocess could not be spawned; the working directory, shell command, and underlying IO error are combined into this diagnostic so the user can see why the task terminal failed.","triggerScenarios":"Thrown at crates/terminal/src/terminal.rs:1191 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the shell program exists and is executable on PATH","Check the working directory still exists; fix the terminal working-directory setting","Inspect the IOError field for the concrete OS error (permissions, missing binary)","Try a different shell in terminal settings"],"exampleFix":null,"handlingStrategy":"fallback","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"}