{"record":{"id":"ffde4b38c1c7aa37","repo":"SubtitleEdit/subtitleedit","slug":"no-subtitles-recognised-in-blu-ray-sup-file-file","errorCode":null,"errorMessage":"No subtitles recognised in Blu-Ray sup file: {filePath}","messagePattern":"No subtitles recognised in Blu-Ray sup file: (.+?)","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"src/seconv/Core/ContainerSubtitleLoader.cs","lineNumber":401,"sourceCode":"    private static List<LoadedTrack> LoadMcc(string filePath)\n    {\n        var mcc = new MacCaption10();\n        if (!mcc.IsMine(null, filePath))\n        {\n            throw new InvalidOperationException($\"File is not a valid MCC subtitle: {filePath}\");\n        }\n        var subtitle = new Subtitle();\n        mcc.LoadSubtitle(subtitle, null, filePath);\n        subtitle.Renumber();\n        return [new LoadedTrack(subtitle, mcc, string.Empty, null)];\n    }\n\n    private static List<LoadedTrack> LoadBluRaySup(string filePath, ConversionOptions options)\n    {\n        var subtitle = ImageOcrLoader.LoadBluRaySup(filePath, options);\n        if (subtitle.Paragraphs.Count == 0)\n        {\n            throw new InvalidOperationException($\"No subtitles recognised in Blu-Ray sup file: {filePath}\");\n        }\n        return [new LoadedTrack(subtitle, new SubRip(), string.Empty, null)];\n    }\n\n    private static List<LoadedTrack> LoadVobSub(string subPath, string idxPath, ConversionOptions options)\n    {\n        var subtitle = ImageOcrLoader.LoadVobSub(subPath, idxPath, options);\n        if (subtitle.Paragraphs.Count == 0)\n        {\n            throw new InvalidOperationException($\"No subtitles recognised in VobSub file: {subPath}\");\n        }\n        return [new LoadedTrack(subtitle, new SubRip(), string.Empty, null)];\n    }\n\n    private static List<LoadedTrack> LoadTransportStream(string filePath, ConversionOptions options)\n    {\n        var tracks = new List<LoadedTrack>();\n","sourceCodeStart":383,"sourceCodeEnd":419,"githubUrl":"https://github.com/SubtitleEdit/subtitleedit/blob/17a9f0748781032255db3526b7215d2fb891e3af/src/seconv/Core/ContainerSubtitleLoader.cs#L383-L419","documentation":"Thrown by LoadBluRaySup when ImageOcrLoader.LoadBluRaySup returned a Subtitle whose Paragraphs list is empty. The .sup was parsed (BluRaySupParser did not throw) but yielded zero presentation composition segments, so there is nothing to convert.","triggerScenarios":"Passing a .sup file (ContainerSubtitleLoader.cs:74-76 routes .sup here) that BluRaySupParser.ParseBluRaySup reads but finds no valid PCS entries, or where OCR produced no paragraphs; the post-check at line 399 sees Paragraphs.Count == 0.","commonSituations":"A corrupt/truncated BD .sup; a .sup that is actually another format mis-named; a PGS file with only display/Windows segments and no composition segments; an empty placeholder.","solutions":["Validate the .sup with a BD/PGS tool (BDSup2Sub, ffmpeg) to confirm it has PCS entries.","Re-demux the PGS from the original Blu-ray source (MakeMKV/eac3to).","If the file is a different image format (.idx/.sub), pass the correct extension."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Pre-validate the .sup has PCS entries via the parser's log/output.\nvar log = new StringBuilder();\nif (BluRaySupParser.ParseBluRaySup(filePath, log).Count == 0)\n    return Error($\"No PCS entries in {filePath}\");","typeGuard":null,"tryCatchPattern":"try { tracks = ContainerSubtitleLoader.TryLoadTracks(filePath, options); }\ncatch (InvalidOperationException ex) when (ex.Message.Contains(\"Blu-Ray sup\"))\n{ Console.Error.WriteLine(ex.Message); return; }","preventionTips":["Validate the PGS .sup with BDSup2Sub/ffmpeg before conversion.","Re-demux PGS from the original Blu-ray if PCS entries are missing.","Catch the 'No subtitles recognised in Blu-Ray sup' exception and skip the file."],"tags":["blu-ray","sup","pgs","subtitle","no-content"],"backgroundTag":null,"analyzedSha":"17a9f0748781032255db3526b7215d2fb891e3af","analyzedAt":"2026-08-13T18:11:43.374Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}