SRT is one of the simplest caption file formats in existence, but even simple formats have plenty of ways to go wrong. Whether your captions were created manually, exported from an editing package, or generated by an AI transcription service, there are a set of common errors that appear repeatedly and cause files to fail QC checks at delivery.
This guide covers the most frequent SRT errors — what they are, what causes them, and how to fix them before your file reaches a distributor, broadcaster, or streaming platform.
Before diagnosing errors, it helps to understand what a correctly formatted SRT block looks like. Each caption in an SRT file consists of three parts: a sequential index number, a timecode line showing when the caption appears and disappears, and one or more lines of caption text. Each block is separated from the next by a blank line.
Any deviation from this structure — a missing index, a malformed timecode, blocks that are not separated by blank lines — constitutes a structural error. Beyond structure, captions can also violate readability rules such as line length or reading speed.
Overlapping timecodes occur when caption block 2 starts before caption block 1 has finished. This is one of the most serious SRT errors and will cause a QC failure on virtually every platform. It can also produce unpredictable rendering behaviour in players, with one or both captions potentially failing to display correctly.
The SRT timecode line must follow an exact format: hours, minutes, seconds, and milliseconds separated by colons and a comma, with " --> " (space, dash, dash, greater-than, space) between the start and end times. Any deviation from this format will cause the entire caption block to fail to parse.
Empty caption blocks occur when a caption event exists in the file with valid timing but no text content. This commonly happens when automated tools create placeholder blocks, when dialogue is deleted without removing the timecode, or when export processes malfunction. Empty blocks will cause QC failures and may cause display errors in some players.
SRT files should have caption blocks numbered sequentially starting from 1. While many players are tolerant of non-sequential numbering and will display captions in timecode order regardless, some QC systems flag this as an error and some players may behave unexpectedly. Non-sequential numbering often indicates that captions were manually edited, merged from multiple files, or processed by a tool that does not properly renumber after deletions.
Netflix allows 42 characters per line. Filmhub allows 43. The BBC recommends 37. Exceeding these limits does not always prevent a caption from displaying, but it will cause automatic QC rejection on platforms that enforce the limit, and may result in text being cut off or wrapped unexpectedly on smaller screens.
CPS (characters per second) violations are among the most common QC failures for captions exported from automated transcription services, which generate timecodes based on speech timing rather than reading comfort. A speaker talking at 250 words per minute will produce captions that far exceed any platform's CPS limit if no editorial intervention is applied.
Netflix requires at least 2 frames (approximately 0.083 seconds) between caption events. Filmhub requires a minimum of 66 milliseconds. When captions are placed back-to-back with no gap — or with a gap smaller than the platform minimum — viewers perceive the captions as continuous text that never disappears, making it hard to distinguish new caption events. Some platforms also flag this as a technical error during automated QC.
A caption with a zero or negative duration cannot be displayed — it exists in the file but would be on screen for no time at all. This is always a data error, typically caused by a timecode entry mistake or a processing error in a subtitle export tool.
Manually checking an SRT file for all of these errors is time-consuming and error-prone, particularly for long feature films or series episodes that may contain hundreds or thousands of caption events. The most efficient approach is to run the file through a dedicated SRT checker before delivery.
Caption QC checks for all of the errors described in this guide automatically — structural errors (overlapping timecodes, malformed blocks, empty captions, sequential index issues, zero duration events) as well as configurable readability rules (characters per line, CPS, duration limits, and gaps). Results are presented in a table showing the caption number, timecode, and a plain-language description of each issue.
Find every error in your SRT file before delivery — free, in your browser, in seconds.
Run Caption QC →