{"record":{"id":"81a6053d1737fb7f","repo":"SubtitleEdit/subtitleedit","slug":"mxf-contained-subtitletexts-count-candidate-subt","errorCode":null,"errorMessage":"MXF contained {subtitleTexts.Count} candidate subtitle essence(s) but none parsed as a known format: {filePath}","messagePattern":"MXF contained (.+?) candidate subtitle essence\\(s\\) but none parsed as a known format: (.+?)","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"src/seconv/Core/ContainerSubtitleLoader.cs","lineNumber":229,"sourceCode":"                    $\"[yellow]Warning: MXF essence #{trackNumber} doesn't parse as a known subtitle format; skipped.[/]\");\n                trackNumber++;\n                continue;\n            }\n            subtitle.Renumber();\n            // Use \"mxf_track{n}\" as the language-suffix slot so multi-track MXFs produce\n            // stably-named outputs (mirrors the teletext_<page> / dvb_pid<n> conventions).\n            tracks.Add(new LoadedTrack(subtitle, format, $\"mxf_track{trackNumber}\", trackNumber));\n            trackNumber++;\n        }\n\n        if (tracks.Count == 0)\n        {\n            if (options.TrackNumbers.Count > 0)\n            {\n                throw new InvalidOperationException(\n                    $\"MXF contained {subtitleTexts.Count} essence(s) but none matched --track-number ({string.Join(\",\", options.TrackNumbers)}): {filePath}\");\n            }\n            throw new InvalidOperationException(\n                $\"MXF contained {subtitleTexts.Count} candidate subtitle essence(s) but none parsed as a known format: {filePath}\");\n        }\n\n        return tracks;\n    }\n\n    private static List<LoadedTrack> LoadMatroska(string filePath, ConversionOptions options)\n    {\n        var tracks = new List<LoadedTrack>();\n        using var matroska = new MatroskaFile(filePath);\n        if (!matroska.IsValid)\n        {\n            throw new InvalidOperationException($\"Invalid Matroska file: {filePath}\");\n        }\n\n        var subtitleTracks = matroska.GetTracks(true);\n        if (subtitleTracks.Count == 0)\n        {","sourceCodeStart":211,"sourceCodeEnd":247,"githubUrl":"https://github.com/SubtitleEdit/subtitleedit/blob/17a9f0748781032255db3526b7215d2fb891e3af/src/seconv/Core/ContainerSubtitleLoader.cs#L211-L247","documentation":"Thrown when an MXF contains candidate subtitle essences (non-empty GetSubtitles()) and no track-number filter is active, yet none of those essences parsed as any known subtitle format. Each essence's content was tried against the format detectors and all failed, so the tracks list stayed empty.","triggerScenarios":"Loading an MXF whose text essences hold subtitle data in a format seconv/LibSE does not recognise — the per-essence format detection (ContainerSubtitleLoader.cs around the subtitle.Renumber() block) returns no match for any essence.","commonSituations":"A proprietary or new subtitle syntax inside the MXF; an essence that is actually non-subtitle text (metadata, SDP, etc.); a malformed/corrupted text essence that no format recognises.","solutions":["Extract one essence's raw text and inspect its structure to identify the format.","If it is a known format LibSE supports, ensure the version of Nikse.SubtitleEdit.Core bundled with seconv recognises it.","If it is unsupported, pre-convert the essence to SRT/ASS with another tool, then run seconv on the converted file."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Extract one essence's raw text and try a known format parser manually before bulk load.\n// (No public pre-detection API; the loader's per-essence detection is authoritative.)","typeGuard":null,"tryCatchPattern":"try { tracks = ContainerSubtitleLoader.TryLoadTracks(mxfPath, options); }\ncatch (InvalidOperationException ex) when (ex.Message.Contains(\"none parsed as a known format\"))\n{ Console.Error.WriteLine($\"Unrecognised subtitle format in {mxfPath}; pre-convert to SRT/ASS.\"); return; }","preventionTips":["Pre-convert MXF subtitle essences to SRT/ASS with a supported tool when the format is exotic.","Catch the 'none parsed' InvalidOperationException and route to a format-conversion step.","Keep LibSE/seconv updated so newly supported formats are recognised."],"tags":["mxf","unknown-format","subtitle","container"],"backgroundTag":null,"analyzedSha":"17a9f0748781032255db3526b7215d2fb891e3af","analyzedAt":"2026-08-13T18:11:43.374Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}