tonhowtf/omniget · error · anyhow::Error
gallery-dl process failed
Error message
gallery-dl process failed: {} What it means
The gallery-dl child process exited with a non-zero status; the {} is the last stderr line matching error/forbidden/not found/unsupported (falling back to 'gallery-dl failed'). The download itself crashed or was rejected by the site — auth failure, removed gallery, or unsupported URL are the usual causes.
Solutions
- Read the embedded stderr detail — it names the actual gallery-dl error
- Provide valid cookies via the cookie file for sites requiring login
- Confirm the gallery URL is still alive and supported by your gallery-dl version (update gallery-dl)
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at src-tauri/src/platforms/gallerydl/mod.rs:282 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/005e5526806752c7.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/src/platforms/gallerydl/mod.rs:282
let _ = progress_tx.send(ProgressUpdate::percent(pct)).await;
last_emit = std::time::Instant::now();
}
}
count
});
let stderr_task = tokio::spawn(async move {
let mut buf = String::new();
let mut lines = BufReader::new(stderr_pipe).lines();
while let Ok(Some(line)) = lines.next_line().await {
buf.push_str(&line);
buf.push('\n');
}
buf
});
let status = tokio::select! {
s = child.wait() => s.map_err(|e| anyhow!("gallery-dl process failed: {}", e))?,
_ = opts.cancel_token.cancelled() => {
let _ = child.kill().await;
let _ = reader_task.await;
let _ = stderr_task.await;
anyhow::bail!("Download cancelled");
}
};
let _ = reader_task.await;
let stderr_content = stderr_task.await.unwrap_or_default();
if !status.success() {
let detail = stderr_content
.lines()
.rev()
.find(|l| {
let l = l.to_lowercase();
l.contains("error")View on GitHub (pinned to 8600b91f42)