{"record":{"id":"1a47226fa5f6cbe9","repo":"tonhowtf/omniget","slug":"o-feed-de-n-o-trouxe-nenhuma-hist-ria-publicada","errorCode":null,"errorMessage":"o feed de @{} não trouxe nenhuma história publicada","messagePattern":"o feed de @(.+?) não trouxe nenhuma história publicada","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src-tauri/omniget-core/src/core/tools/blogs/medium.rs","lineNumber":672,"sourceCode":"                note = Some(format!(\n                    \"a sessão do Medium não respondeu ({}); saiu o que o feed público entrega\",\n                    e\n                ));\n            }\n        }\n    }\n\n    if docs.is_empty() {\n        if user.is_empty() {\n            return Err(anyhow!(\n                \"informe o seu usuário do Medium (ou capture os cookies de medium.com no gerenciador para incluir os rascunhos)\"\n            ));\n        }\n        crate::core::tools::report(&progress, ID, \"feed\", 0, None, Some(user.clone()));\n        let xml = fetcher.get_text(&feed_url(&user)).await?;\n        let items = parse_feed(&xml);\n        if items.is_empty() {\n            return Err(anyhow!(\n                \"o feed de @{} não trouxe nenhuma história publicada\",\n                user\n            ));\n        }\n        for it in items {\n            docs.push(doc_from_feed(&it, \"Medium\"));\n        }\n    }\n\n    if opts.limit > 0 && docs.len() > opts.limit {\n        docs.truncate(opts.limit);\n    }\n\n    let mut out = ExportResult {\n        used_session: fetcher.has_session(),\n        source: source.to_string(),\n        user: user.clone(),\n        dest: root.to_string_lossy().to_string(),","sourceCodeStart":654,"sourceCodeEnd":690,"githubUrl":"https://github.com/tonhowtf/omniget/blob/8600b91f4246848bac346874daa9e61c1fc5677a/src-tauri/omniget-core/src/core/tools/blogs/medium.rs#L654-L690","documentation":"When falling back to the public Medium RSS feed, run() parses the feed and requires at least one published story. If parse_feed returns zero items for the user, it throws this error rather than exporting an empty result set.","triggerScenarios":"opts.user is set and docs was empty, fetcher.get_text(feed_url(&user)) succeeded, but parse_feed(&xml) produced an empty items list.","commonSituations":"The username exists but has no public stories; the account is new or all stories are drafts (drafts only visible via session/cookies); Medium returned an empty or invalid feed for the handle (renamed/deleted account).","solutions":["Confirm the Medium username actually has publicly published stories by opening the feed URL in a browser","Log in via cookies so from_session can export drafts and session stories instead of relying on the public feed","Check the username spelling/handle","Try again later in case the feed was temporarily empty"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"let xml = fetcher.get_text(&feed_url(&user)).await?;\nif parse_feed(&xml).is_empty() {\n    // warn or fall back before exporting\n}","typeGuard":null,"tryCatchPattern":"match run(&opts, progress).await {\n    Err(e) if e.to_string().contains(\"nenhuma história publicada\") => {\n        tracing::warn!(\"usuário sem histórias públicas: {}\", user);\n    }\n    other => other?,\n}","preventionTips":["Verify the feed URL has items before invoking the exporter","Prefer the authenticated session path for accounts with drafts only","Handle empty accounts gracefully instead of treating them as failures"],"tags":["medium","feed","empty-result"],"backgroundTag":"empty-result-set","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"}