tonhowtf/omniget · error
nenhum post foi lido desse blog
Error message
nenhum post foi lido desse blog
What it means
The backup tool fetches the blog's post dump and parses it into posts. If parsing yields zero posts, the backup would be an empty mirror, so it aborts with this message rather than writing an empty backup.
Solutions
- Verify the blog exists and has posts by opening it in a browser
- Provide a valid session_netscape cookie file if the blog requires a session
- Re-export cookies if the session expired
- Update the parser if Tumblr changed its response format
- Double-check the blog name/URL for typos
Example fix
// before
let opts = Options { blog: "deleted-blog".into(), session_netscape: None, .. };
// after
let opts = Options { blog: "active-blog".into(), session_netscape: Some("cookies.txt".into()), .. }; Defensive patterns
Strategy: try-catch
Validate before calling
// confirm blog exists and has posts before backing up
if !blog_has_posts(&opts.blog, opts.session_netscape.as_deref()).await {
return Err(anyhow!("blog vazio ou inacessível"));
} Try / catch
match backup::run(&opts, progress).await {
Err(e) if e.to_string().contains("nenhum post foi lido") => {
eprintln!("verifique sessão/nome do blog ou formato do dump");
}
Err(e) => return Err(e),
Ok(r) => use(r),
} Prevention
- Check the blog has posts in a browser before running
- Keep session cookies fresh for authenticated blogs
- Update the tool when Tumblr changes its dump format
When it happens
Trigger: Calling backup `run` against a blog whose fetched dump contained no parseable posts — empty/new blog, offscreen/private content without a valid session, or a dump format change breaking parse_posts.
Common situations: Backing up a deleted or brand-new blog with zero posts; missing or expired session cookies for blogs that require authentication; Tumblr API/HTML changes that the parser no longer understands; wrong blog name that resolves to an empty page.
Understand the failure class
Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.
Related errors
- nenhum favorito foi lido: esses perfis costumam exigir a…
- informe o blog
- nenhum like foi lido: os likes só aparecem com a sessão do…
- nao encontrei slides nessa pagina (o SlideShare pode ter…
- a lista voltou vazia — o TikTok não entregou os favoritos…
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/252e0de6bb23b6f2.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/tools/tumblr/backup.rs:545
"-o".to_string(),
"extractor.tumblr.reblogs=true".to_string(),
"-o".to_string(),
"extractor.tumblr.original=true".to_string(),
];
super::super::report(progress, TOOL_ID, "started", 0, None, Some(url.clone()));
let entries = gdl::dump(
&url,
cookie_path.as_deref(),
opts.limit,
&extra,
progress,
TOOL_ID,
)
.await?;
let posts = parse_posts(&entries);
if posts.is_empty() {
anyhow::bail!("nenhum post foi lido desse blog");
}
let blog_name = posts
.iter()
.find(|p| !p.blog.is_empty())
.map(|p| p.blog.clone())
.unwrap_or_else(|| safe_slug(&opts.blog));
let root = PathBuf::from(&opts.out_dir).join(safe_slug(&blog_name));
let media_dir = root.join("media");
std::fs::create_dir_all(root.join("posts"))?;
std::fs::create_dir_all(root.join("tags"))?;
let mut media_files = 0u64;
if opts.download_media {
let out = gdl::download(
&url,
&media_dir,
cookie_path.as_deref(),View on GitHub (pinned to 8600b91f42)