{"record":{"id":"3c813e853ad95ba9","repo":"tonhowtf/omniget","slug":"no-stdout-from-gallery-dl","errorCode":null,"errorMessage":"No stdout from gallery-dl","messagePattern":"No stdout from gallery-dl","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src-tauri/src/platforms/gallerydl/mod.rs","lineNumber":243,"sourceCode":"            if std::fs::metadata(&cookie_file)\n                .map(|m| m.len() > 0)\n                .unwrap_or(false)\n            {\n                cmd.arg(\"--cookies\").arg(&cookie_file);\n            }\n        }\n\n        cmd.arg(\"--\").arg(&url);\n\n        cmd.kill_on_drop(true);\n        let mut child = cmd\n            .spawn()\n            .map_err(|e| anyhow!(\"Failed to start gallery-dl: {}\", e))?;\n\n        let stdout = child\n            .stdout\n            .take()\n            .ok_or_else(|| anyhow!(\"No stdout from gallery-dl\"))?;\n        let stderr_pipe = child\n            .stderr\n            .take()\n            .ok_or_else(|| anyhow!(\"No stderr from gallery-dl\"))?;\n\n        let started_at = SystemTime::now();\n\n        let progress_tx = progress.clone();\n        let reader_task = tokio::spawn(async move {\n            let mut lines = BufReader::new(stdout).lines();\n            let mut count: u64 = 0;\n            let mut last_emit = std::time::Instant::now();\n            while let Ok(Some(line)) = lines.next_line().await {\n                let trimmed = line.trim();\n                if trimmed.is_empty() || trimmed.starts_with('#') || trimmed.starts_with('[') {\n                    continue;\n                }\n                count += 1;","sourceCodeStart":225,"sourceCodeEnd":261,"githubUrl":"https://github.com/tonhowtf/omniget/blob/8600b91f4246848bac346874daa9e61c1fc5677a/src-tauri/src/platforms/gallerydl/mod.rs#L225-L261","documentation":"A defensive guard in download(): child.stdout was None when taken, meaning the gallery-dl process was spawned without a piped stdout handle (stdio was not configured as piped before spawn). No download output or JSON result can ever be read; this is an internal plumbing error, not a gallery-dl failure.","triggerScenarios":"Thrown at src-tauri/src/platforms/gallerydl/mod.rs:243 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the gallery-dl command is built with stdout piped before spawn","Update the app — newer builds configure stdio correctly","Report the issue if it reproduces with a current version"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8600b91f4246848bac346874daa9e61c1fc5677a","analyzedAt":"2026-09-12T14:29:19.317Z","contentChangedAt":"2026-09-12T14:29:19.317Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}