Zackriya-Solutions/meetily · error · anyhow::Error
No audio file found in: {}
Error message
No audio file found in: {} What it means
find_audio_file walked the meeting folder and found no file whose (lowercased) extension is in AUDIO_EXTENSIONS ('mp4', 'm4a', 'wav', 'mp3', 'flac', 'ogg', 'aac', 'mkv', 'webm', 'wma'). Retranscription needs source audio, so it aborts before any progress is emitted.
Source
Thrown at frontend/src-tauri/src/audio/retranscription.rs:168
if path.exists() {
return Ok(path);
}
}
// Fallback: scan folder for any file with an audio extension
if let Ok(entries) = std::fs::read_dir(folder) {
for entry in entries.flatten() {
let path = entry.path();
if let Some(ext) = path.extension() {
let ext = ext.to_string_lossy().to_lowercase();
if AUDIO_EXTENSIONS.contains(&ext.as_str()) {
return Ok(path);
}
}
}
}
Err(anyhow!("No audio file found in: {}", folder.display()))
}
/// Internal function to run retranscription
async fn run_retranscription<R: Runtime>(
app: AppHandle<R>,
meeting_id: String,
meeting_folder_path: String,
language: Option<String>,
model: Option<String>,
provider: Option<String>,
) -> Result<RetranscriptionResult> {
let folder_path = PathBuf::from(&meeting_folder_path);
let audio_path = find_audio_file(&folder_path)?;
// Determine which provider to use (default to whisper)
let use_parakeet = provider.as_deref() == Some("parakeet");
info!(View on GitHub (pinned to 0281737d87)
Solutions
- List the meeting folder and confirm an audio file exists with a supported extension (mp4/m4a/wav/mp3/flac/ogg/aac/mkv/webm/wma)
- Rename the file to a supported extension, or extend AUDIO_EXTENSIONS in audio/constants.rs to cover it
- Verify meeting_folder_path matches the actual meeting directory
Example fix
// before
Err(anyhow!("No audio file found in: {}", folder.display()))
// after - include what was actually looked for and found, so users can self-diagnose
let contents: Vec<String> = std::fs::read_dir(folder)?
.flatten()
.map(|e| e.file_name().to_string_lossy().into_owned())
.collect();
Err(anyhow!(
"No audio file with extension in {:?} found in {} (folder contents: {:?})",
AUDIO_EXTENSIONS,
folder.display(),
contents
)) Defensive patterns
Strategy: validation
Validate before calling
// Frontend/backend: only offer retranscription when source audio exists
fn has_audio_file(folder: &std::path::Path) -> bool {
const EXTS: [&str; 10] = ["mp4", "m4a", "wav", "mp3", "flac", "ogg", "aac", "mkv", "webm", "wma"];
std::fs::read_dir(folder)
.map(|entries| {
entries.flatten().any(|e| {
e.path()
.extension()
.map(|x| EXTS.contains(&x.to_string_lossy().to_lowercase().as_str()))
.unwrap_or(false)
})
})
.unwrap_or(false)
} Try / catch
Catch 'No audio file found' and present it as a precondition message ('This meeting has no stored audio to retranscribe') rather than a generic error; keep the rest of the meeting data intact. Prevention
- Verify the meeting folder contains an AUDIO_EXTENSIONS file before showing the Retranscribe action
- Keep auto-save on so meetings always retain their audio file
- When adding support for new audio formats, extend AUDIO_EXTENSIONS in audio/constants.rs and its tests
When it happens
Trigger: The meeting folder contains only transcripts/summaries because audio was never saved (auto-save off and app closed) or was deleted by the user; the audio file has an extension outside the whitelist; the passed meeting_folder_path points to the wrong or renamed directory.
Common situations: Retranscribing old meetings recorded before auto-save existed; users cleaning up disk space by deleting large audio files; files renamed to .mpeg or other unlisted extensions.
Related errors
- Failed to open audio file '{}': {}
- File does not exist: {}
- Source file not found: {}
- Retranscription already in progress
- Retranscription cancelled
AI-assisted analysis of Zackriya-Solutions/meetily@0281737d87 (2026-08-16).
Data as JSON: /api/errors/eb9a0215cb8eb360.
Report an issue: GitHub.