vastlint

VAST error codes: what they mean and how to fix them

Short answer

VAST error codes are runtime failure buckets emitted by players and ad servers. They are not the same as vastlint rule IDs. A code like 301 or 401 tells you where the failure happened; the vastlint rule pages tell you what in the XML actually broke.

Why this happens

Most players expose only a coarse numeric code because they do not ship a full validator or a structured diff of the XML they received. That means one code can hide several concrete failures: a missing wrapper URL, a malformed media URL, a deprecated VPAID creative on CTV, or a chain that never resolves inline.

The practical workflow is: use the runtime code to narrow the class of failure, then use the validator, tester, or inspector to find the exact broken element.

Common codes and likely root causes

CodeUsually meansWhere to look next
100XML parsing failureMalformed XML, broken CDATA, invalid nesting
301Wrapper timeout / wrapper resolution failureMissing <VASTAdTagURI>, timeout, or bad redirect target
302Wrapper limit reachedToo many redirects in the chain
401Media file not found or unreachableBroken media URL, HTTP on HTTPS page, CDN issue
403Unsupported media or player mismatchWrong format, deprecated VPAID, browser-only creative on CTV
405Problem with mezzanine or high-quality sourceCTV and SSAI trafficking requirements
901General VPAID/SIMID interactive failureWrong type, empty URL, unsupported runtime
902Interactive creative loaded but failed at runtimeSIMID or verification-layer mismatch

Copyable fix example

A large share of player-side wrapper errors collapse down to one XML problem: the wrapper does not actually point to the next VAST response.

<!-- Copy this wrapper fix when the chain must continue -->
<VAST version="3.0">
  <Ad>
    <Wrapper>
      <AdSystem>Example Ad Server</AdSystem>
      <VASTAdTagURI><![CDATA[https://ads.example.com/final-inline.xml]]></VASTAdTagURI>
      <Impression><![CDATA[https://tracker.example.com/wrapper-imp]]></Impression>
      <Creatives />
    </Wrapper>
  </Ad>
</VAST>

Exact rule pages

Use the right tool for this failure

If you already have the resolved XML, run a pure spec check. If you only have a live tag URL, test that endpoint first. If the failure happens in the wrapper chain, inspect each hop.

Further reading