VAST-2.0-json-escaped
Document is JSON-escaped, so attribute quotes are not real XML quotes
Short answer
The <VAST version> quotes are still JSON escapes (version=\"3.0\"). A player reading those bytes does not see the attributes. vastlint unescapes the document before the other checks and reports this once, instead of a pile of missing-attribute errors.
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. Consistency rules catch documents that technically contain the right pieces but combine them in ways that produce conflicting signals for downstream systems. Affected scope: VAST 2.0 and later (all versions).
How to fix
Unescape the JSON string before linting or serving it. version=\"3.0\" and literal \n have to become version="3.0" and real newlines. vastlint already lints the unescaped document.
Invalid
<VAST version=\"3.0\">Valid
<VAST version="3.0">VAST-2.0-json-escaped and other issues instantly.Open the VAST tag validator →