Zackriya-Solutions/meetily · error

FFmpeg output file not found: {}

Error message

FFmpeg output file not found: {}

What it means

ffmpeg reported success (exit 0) but fs::metadata on the temp WAV failed — the output file is gone or unreadable. Almost always environmental rather than a media problem: antivirus quarantining a freshly written hidden .wav, aggressive disk cleanup, or filesystem errors on the volume holding the input directory (the temp file is created next to the input, not in system temp).

Source

Thrown at frontend/src-tauri/src/audio/decoder.rs:371

    let stderr_text = String::from_utf8_lossy(&output.stderr);
    debug!("FFmpeg stderr: {}", stderr_text);

    if !output.status.success() {
        error!(
            "FFmpeg conversion failed (exit code: {}): {}",
            output.status, stderr_text
        );
        return Err(anyhow!(
            "FFmpeg conversion failed with exit code: {}. \
             The file may be corrupted or in an unsupported format.",
            output.status
        ));
    }

    // Verify output file exists and has content
    let output_meta = std::fs::metadata(&temp_path)
        .map_err(|e| anyhow!("FFmpeg output file not found: {}", e))?;

    if output_meta.len() == 0 {
        return Err(anyhow!(
            "FFmpeg produced an empty output file. The input may contain no audio."
        ));
    }

    if let Some(cb) = progress_callback {
        cb(100, "FFmpeg conversion complete");
    }

    info!(
        "FFmpeg conversion complete: {} bytes output",
        output_meta.len()
    );

    Ok(temp_path)
}

View on GitHub (pinned to 0281737d87)

Solutions

  1. Check antivirus/quarantine logs and exclude the app's working/import directories.
  2. Retry the import — quarantine races are intermittent and usually succeed immediately after.
  3. Verify disk health and free space on the volume holding the input file.
Defensive patterns

Strategy: try-catch

Try / catch

// metadata vanished after a success exit — retry once (AV quarantine race)
let output_meta = match std::fs::metadata(&temp_path) {
    Ok(m) => m,
    Err(_) => std::fs::metadata(&temp_path).map_err(|e| anyhow!("FFmpeg output file not found: {}", e))?,
};

Prevention

When it happens

Trigger: Real-time AV scans remove the hidden .meetily_decode_*.wav between ffmpeg writing it and the metadata check; disk cleanup tools sweep temp-looking files; failing disk or full volume at write time.

Common situations: Windows Defender/third-party AV quarantine races on first import after install; corporate endpoint tools; NAS volumes with delayed visibility.

Related errors


AI-assisted analysis of Zackriya-Solutions/meetily@0281737d87 (2026-08-16). Data as JSON: /api/errors/d058824e35bf3abc. Report an issue: GitHub.