tonhowtf/omniget · error

entrada

Error message

entrada: {}

What it means

isolate reads the input audio file with std::fs::read before uploading it as multipart for source separation, wrapping failures as 'entrada: {}' (input: {}). It means the file to be processed could not be read from disk.

Solutions

  1. Read the inner OS error: NotFound → correct the path; PermissionDenied → fix permissions.
  2. Validate the input path with Path::is_file before calling isolate.
  3. Confirm the upstream step that produced the input file actually succeeded and wrote it.
  4. Check for file locks (close players/editors holding the file) and remount network volumes.

Example fix

// before
let data = std::fs::read(input).map_err(|e| anyhow!("entrada: {}", e))?;
// after
let in_path = Path::new(input);
anyhow::ensure!(in_path.is_file(), "entrada: arquivo ausente: {}", input);
let data = std::fs::read(in_path).map_err(|e| anyhow!("entrada: {}", e))?;
Defensive patterns

Strategy: validation

Validate before calling

fn validate_isolate_input(path: &str) -> Result<(), String> {
    let p = std::path::Path::new(path);
    if !p.is_file() { return Err(format!("input not a file: {path}")); }
    let len = std::fs::metadata(p).map(|m| m.len()).unwrap_or(0);
    if len == 0 { return Err("input file is empty".into()); }
    Ok(())
}

Try / catch

match std::fs::read(input) {
    Err(e) if e.kind() == std::io::ErrorKind::NotFound => eprintln!("entrada nao encontrada: {input}"),
    Err(e) if e.kind() == std::io::ErrorKind::PermissionDenied => eprintln!("sem permissao: {input}"),
    other => other?,
}

Prevention

When it happens

Trigger: The `input` path passed to isolate does not exist, is a directory, or is unreadable due to permissions at the start of vocal/instrumental isolation.

Common situations: Stale path after a previous processing step moved/renamed the file, wrong path from the UI, file on an unmounted volume, or antivirus/another process locking the file.

Understand the failure class

Background: "failed to read file", EACCES, ENOENT and "could not read <path>" errors: when a program can't read a file from disk — this error's family across 49 libraries.

Related errors


AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12). Data as JSON: /api/errors/e9d71efc411ef71f. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/omniget-core/src/core/tools/voicestudio.rs:493

        matched,
        unmatched,
        profile_id,
    })
}

/// Demucs no VoiceStudio: devolve só a voz. O instrumental é a diferença,
/// feita aqui com o FFmpeg (voz invertida somada ao original).
pub async fn isolate(
    base_url: &str,
    input: &str,
    output_dir: &str,
    instrumental: bool,
    progress: super::ProgressFn,
) -> anyhow::Result<Vec<String>> {
    let b = base(base_url);
    let c = client(1800)?;
    super::report(&progress, "voicestudio", "upload", 0, None, None);
    let data = std::fs::read(input).map_err(|e| anyhow!("entrada: {}", e))?;
    let file_name = Path::new(input)
        .file_name()
        .map(|s| s.to_string_lossy().to_string())
        .unwrap_or_else(|| "audio.wav".into());
    let form = reqwest::multipart::Form::new().part(
        "audio",
        reqwest::multipart::Part::bytes(data).file_name(file_name),
    );
    super::report(&progress, "voicestudio", "separate", 0, None, None);
    let resp = c
        .post(format!("{}/clean-audio", b))
        .multipart(form)
        .send()
        .await?;
    let stem = Path::new(input)
        .file_stem()
        .map(|s| s.to_string_lossy().to_string())
        .unwrap_or_else(|| "audio".into());

View on GitHub (pinned to 8600b91f42)