VAST Error Codes Reference
All 38 VAST error codes in one place — what each one means, the usual causes, and the concrete steps to fix it. Every code links to a full diagnostic guide.
Validate a VAST tag freeXML errors (100–102)
The VAST document itself is unreadable, invalid, or in an unsupported version.
The player could not parse the VAST response as XML — the document is malformed, truncated, or not XML at all.
The XML parsed, but the document violates the VAST schema — required elements are missing, misplaced, or misspelled.
The player received a valid VAST document in a version it does not support — usually a modern 4.x tag hitting an old player.
Trafficking errors (200–206)
The ad is valid but wrong for the placement — linearity, duration, size, or category rules.
The player received an ad type it was not expecting and cannot display — the ad is valid, but wrong for the slot.
The player asked for one linearity and got the other — a linear ad in a non-linear slot, or a non-linear overlay in a pre-roll.
The ad's duration violates what the placement allows — usually a creative longer than the slot's maximum.
The returned creative's dimensions or bitrate don't fit the placement — wrong resolution, aspect ratio, or file size class.
The ad request required category metadata and the response's <Category> element was missing — the ad is rejected for lack of classification.
The resolved ad declares a category that an upstream wrapper explicitly blocked — the ad is rejected and the block is reported upstream.
The ad break was cut short and this ad's slot disappeared before it could play — a pod-level scheduling drop, not a broken ad.
Wrapper errors (300–304)
Following the redirect chain failed — timeouts, depth limits, or an empty response.
Something failed while following a wrapper redirect — the catch-all for wrapper problems that aren't a timeout (301), depth limit (302), or no-fill (303).
A wrapper hop took too long to respond and the player gave up — the chain is too slow, not broken.
The chain has more nested wrappers than the player allows — usually more than 5 hops — and the player refused to follow further.
The wrapper chain resolved successfully but ended with no ad — a no-fill. The most common VAST error, and an economics signal more than a technical one.
The chain resolved to a real ad, but the ad failed to start playing within the player's time limit — resolution succeeded, display didn't.
Linear / media file errors (400–411)
The video ad itself could not be fetched, selected, or played.
The player couldn't display the linear ad for a reason it can't classify more precisely — the catch-all for video playback failures.
The MediaFile URL doesn't resolve — the player got a 404, DNS failure, or dead CDN path when it requested the video.
The media file exists but couldn't be fetched in time — too large, too slow a CDN, or too little bandwidth.
The player scanned every MediaFile in the ad and none matched the codecs, MIME types, or delivery methods it supports.
A media file was selected and fetched, then failed to actually play — codec mismatch inside the container, corruption, or a CORS block.
The placement requires a mezzanine (high-quality master) file and the ad didn't include one — common in server-side ad insertion.
The mezzanine exists but wasn't transcoded yet — the ad can't play this break, but likely will in a few minutes.
The ad declared conditionalAd="true" — meaning it might not pay — and the placement doesn't accept conditional ads.
The ad's interactive component (InteractiveCreativeFile, e.g. a SIMID unit) failed to run — the video may have played without its interactive layer.
A measurement/verification script attached to the ad (via AdVerifications) failed to run — the ad may have played unmeasured.
A mezzanine file was included but doesn't meet the required spec — wrong resolution, codec, bitrate, or container for the platform's ingest rules.
NonLinear errors (500–503)
The overlay unit could not be rendered on top of the content.
The overlay ad (non-linear unit) failed for a reason the player can't classify — the catch-all for overlay rendering problems.
The overlay creative is larger than the space the player allows — it won't scale or crop, so it isn't shown.
The overlay's image/iframe/HTML resource couldn't be downloaded — the non-linear equivalent of a 401.
None of the overlay's resource types (static image, iframe, HTML) is supported by this player.
Companion errors (600–604)
The banner shown alongside the video could not be displayed.
The companion ad (the banner shown next to the video) failed for an unclassified reason — catch-all for companion problems.
No companion creative matches the size of any available companion slot on the page.
The ad declared its companions required, one couldn't be shown, and per the spec the whole ad — video included — must be abandoned.
The companion's image/iframe/HTML asset couldn't be downloaded — dead URL, block, or timeout.
None of the companion's resource types (static, iframe, HTML) can be rendered by this integration.
Undefined / VPAID errors (900–902)
Unclassified failures and executable (VPAID/SIMID) ad unit errors.
The player hit a failure it couldn't map to any defined code — the bottom of the error taxonomy, and often the top of the volume chart.
A VPAID (executable) ad unit failed — the legacy interactive ad format that runs code inside the player broke somewhere.
The modern interactive component (InteractiveCreativeFile, typically SIMID) hit a general failure — VPAID's successor reporting its own catch-all.