tonhowtf/omniget · error

nenhuma lista veio: nada a bloquear

Error message

nenhuma lista veio: nada a bloquear

What it means

Merge guard in hosts_block apply: after fetching all sources (including the 'extra' manual domains), every collected list is empty — fetching failed everywhere or returned zero domains — so applying would only rewrite the hosts file without blocking anything, and the run aborts.

Solutions

  1. Check network connectivity and retry so at least one source downloads
  2. Add manual extra domains so the run has content even if remote lists fail
  3. Inspect per-source SourceStat errors to see which fetches failed and why
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src-tauri/omniget-core/src/core/tools/hosts_block.rs:610 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/56847316b507917a. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/omniget-core/src/core/tools/hosts_block.rs:610

        }
    }
    let extra: Vec<String> = opts
        .extra
        .iter()
        .filter_map(|d| normalize_domain(d.as_str()))
        .collect();
    if !extra.is_empty() {
        stats.push(SourceStat {
            id: "extra".into(),
            url: None,
            domains: extra.len(),
            ok: true,
            error: None,
        });
        lists.push(extra);
    }
    if lists.iter().all(|l| l.is_empty()) {
        return Err(anyhow!("nenhuma lista veio: nada a bloquear"));
    }

    let (domains, skipped) = merge(&lists, &opts.whitelist);
    let current = std::fs::read_to_string(&path).unwrap_or_default();
    let blocked_before = count_blocked(&current);
    let updated_at = now_stamp();
    let next = apply_to_text(&current, &domains, &opts.ip, &updated_at);
    super::report(progress, ID, "progress", total - 1, Some(total), None);

    let mut result = ApplyResult {
        path: path.to_string_lossy().to_string(),
        dry_run: opts.dry_run,
        written: false,
        blocked: domains.len(),
        blocked_before,
        skipped_whitelist: skipped,
        bytes: next.len() as u64,
        backup: None,

View on GitHub (pinned to 8600b91f42)