Duration must be HH:MM:SS
<Duration> value does not match HH:MM:SS[.mmm] format
Short answer
VAST Duration is HH:MM:SS or HH:MM:SS.mmm. A bare 30, thirty seconds, or ISO PT30S will fail parsing.
VAST requires duration values to follow the `HH:MM:SS` or `HH:MM:SS.mmm` format. Plain English values like `"30 seconds"` or bare numbers like `"30"` are not valid and will cause players to fail to parse the duration.
Why this matters in production
This rule is usually a delivery blocker. Many players, SDKs, and ad servers will discard the response or skip the affected creative once this condition is hit. Value-format rules tend to fail at the moment a player interprets a field such as duration, skipoffset, bitrate, or versioning. They are especially painful because the XML can look valid at a glance. Affected scope: VAST 2.0 and later (all versions).
How to fix
Rewrite the duration in HH:MM:SS format, e.g. 00:00:30 for 30 seconds or 00:01:30 for 90 seconds. Optionally append milliseconds: 00:00:30.500.
Invalid
<Duration>thirty seconds</Duration>Valid
<Duration>00:00:30</Duration>VAST-2.0-duration-format and other issues instantly.Open the VAST tag validator →