{"record":{"id":"11c085a4c060eb22","repo":"Zackriya-Solutions/meetily","slug":"no-audio-track-found-in-file","errorCode":null,"errorMessage":"No audio track found in file","messagePattern":"No audio track found in file","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"frontend/src-tauri/src/audio/decoder.rs","lineNumber":452,"sourceCode":"\n    // Probe the file format\n    let probed = symphonia::default::get_probe()\n        .format(\n            &hint,\n            mss,\n            &FormatOptions::default(),\n            &MetadataOptions::default(),\n        )\n        .map_err(|e| anyhow!(\"Failed to probe audio format: {}\", e))?;\n\n    let mut format = probed.format;\n\n    // Find the first audio track\n    let track = format\n        .tracks()\n        .iter()\n        .find(|t| t.codec_params.codec != CODEC_TYPE_NULL)\n        .ok_or_else(|| anyhow!(\"No audio track found in file\"))?;\n\n    let track_id = track.id;\n\n    // Get audio parameters\n    let sample_rate = track\n        .codec_params\n        .sample_rate\n        .ok_or_else(|| anyhow!(\"Unknown sample rate\"))?;\n\n    let mut channels = track\n        .codec_params\n        .channels\n        .map(|c| c.count() as u16)\n        .unwrap_or(1);\n\n    debug!(\n        \"Audio track: {}Hz, {} channels (from metadata)\",\n        sample_rate, channels","sourceCodeStart":434,"sourceCodeEnd":470,"githubUrl":"https://github.com/Zackriya-Solutions/meetily/blob/0281737d87d26352fb0adc78c8c0975f691b23d1/frontend/src-tauri/src/audio/decoder.rs#L434-L470","documentation":"The container probed successfully, but every track reports CODEC_TYPE_NULL — meaning Symphonia sees tracks yet none is a decodable audio track. The classic case is a video-only MP4/MKV where the audio slot is empty and the video codec is not registered, so the filter finds nothing with a real codec. Media is structurally valid; there is just no audio to transcribe.","triggerScenarios":"Importing a video-only MP4/MKV/MOV that Symphonia recognizes as a container; files whose audio track uses a codec Symphonia doesn't register, leaving only null-codec tracks.","commonSituations":"Screen or camera recordings made without an audio device, downloaded clips with stripped audio, security-cam exports.","solutions":["Check for an audio stream with ffprobe — video-only files cannot be transcribed.","If the container should have audio, remux/extract it: `ffmpeg -i input -vn -acodec copy audio.<ext>`, then import that.","Filter video-only files at import time with the same stream check so users get a clear message up front."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"Err(e) if e.to_string().contains(\"No audio track\") => {\n    // message: 'This file has no audio track — nothing to transcribe'; filter the file from the import list\n}","preventionTips":["Filter video-only files at import by checking for an audio stream.","For screen recordings, ensure the recorder captures an audio device."],"tags":["symphonia","no-audio-track","video-import"],"backgroundTag":"no-audio-track","analyzedSha":"0281737d87d26352fb0adc78c8c0975f691b23d1","analyzedAt":"2026-08-16T20:57:52.567Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}