A scannable, beginner-friendly cheat sheet for VAST + common Google IMA error codes

If you’re seeing VAST errors in a player (or in your ad server logs), you don’t need to memorize the spec to fix them.
This guide is a simple, practical lookup for the most common VAST error codes (plus a few widely-seen Google IMA codes). You’ll learn what the code usually means and the fastest things to check first.
Want to debug quickly? Paste your tag into our VAST Tag Tester to validate the XML, follow wrappers, and inspect media files.
How to use this guide (fast)
- Find the error code in your player logs (or the
errorcodemacro ping). - Jump to the matching section below (use
Cmd+F/Ctrl+F). - Do the “Quick checks” in order — they’re sorted from most common to most actionable.
The #1 rule
Most “mystery” VAST errors come down to one of these:
- Broken XML (bad characters, unclosed tags, wrong VAST version)
- Wrapper chain issues (timeouts, too many hops, or no final inline ad)
- Media file problems (404, slow CDN, unsupported codec/MIME)
- Player policies (autoplay restrictions, mixed content, sandbox/CORS)
Quick fixes checklist (do these before deep-diving)
- Validate the XML: well‑formed, correct encoding, correct VAST version.
- Unwrap wrappers: confirm the chain ends in an
InLinewith a playable<MediaFile>. - Open the media file URL in a browser: confirm it loads and plays.
- Check HTTPS everywhere: avoid mixed content (HTTPS page loading HTTP assets).
- Verify CORS (especially for IMA / web players): ad tag + media + tracking URLs.
- Provide multiple media files: at least one widely compatible MP4 (H.264/AAC) is a good baseline.
100–102: XML & VAST version problems
These mean the player couldn’t read or accept the VAST response.
| Code | What it means | Quick checks |
|---|---|---|
| 100 | XML parsing failed | Validate XML, fix unclosed tags, remove invalid characters, confirm encoding. |
| 101 | Schema/spec validation failed | Check required nodes/attributes, confirm the response matches its declared VAST version. |
| 102 | VAST version not supported | Output a lower VAST version, or upgrade the player/SDK. |
200–206: Trafficking / player expectation issues
These mean the player received an ad response that doesn’t match what it requested or can display.
| Code | What it means | Quick checks |
|---|---|---|
| 200 | Trafficking error / unexpected ad type | Confirm the slot is a video slot and you’re returning a video-capable response. |
| 201 | Incorrect linearity | Ensure the placement expects linear vs non-linear and the response matches. |
| 202 | Incorrect duration | Confirm ad duration constraints in the request/pod settings; ensure your creative matches. |
| 203 | Incorrect size | Confirm creative dimensions match the slot (or that the player supports scaling). |
| 204 | Missing ad category | Add required category metadata if the publisher requires it. |
| 205 | Blocked ad category | The inline ad category violates wrapper restrictions; adjust category or targeting. |
| 206 | Ad break shortened | Pod/placement changed; verify pod rules and fallback logic. |
300–304: Wrapper (redirect chain) problems
Wrappers are powerful, but they’re the source of many “works in one player, fails in another” issues.
| Code | What it means | Quick checks |
|---|---|---|
| 300 | General wrapper error | Unwrap manually and check each hop; look for the first bad response. |
| 301 | Wrapper URI timeout | Check partner latency, lower wrapper depth, confirm the wrapper URL responds fast. |
| 302 | Wrapper limit reached | Too many hops or a loop; remove intermediaries and check for circular redirects. |
| 303 | No VAST response after wrappers | One hop returns empty/invalid; verify each wrapper URL returns a valid response. |
| 304 | Ad display timeout | Media too slow; optimize file size/bitrate, improve CDN, confirm URLs are reachable. |
400–411: Linear / media file playback problems
These usually mean the player found a media file but couldn’t fetch or play it.
| Code | What it means | Quick checks |
|---|---|---|
| 400 | General linear error | Check player logs for the real cause; test on another device/player for comparison. |
| 401 | Media file not found | URL typo or removed asset; confirm HTTP 200 and correct path. |
| 402 | Media file timeout | Large file or slow CDN; compress, reduce bitrate, use a faster edge/CDN. |
| 403 | No supported media file found | Provide a compatible MP4 (H.264), correct <MediaFile type>, add fallbacks. |
| 405 | Media file exists but can’t be displayed | Codec/MIME mismatch, unsupported delivery method, corrupted file; verify headers and playback. |
| 406 | Mezzanine required but missing | Provide mezzanine if required by SSAI/publisher. |
| 407 | Mezzanine still downloading/transcoding | Wait for ingest/transcode, or provide a pre-transcoded alternative. |
| 408 | Conditional ad rejected (deprecated) | Update to modern VAST handling; avoid deprecated conditionalAd usage. |
| 409 | Interactive unit not executed | Confirm player supports interactive creatives; verify the creative file and permissions. |
| 410 | Verification unit not executed | Check verification script URLs and vendor integration; confirm scripts are reachable. |
| 411 | Mezzanine doesn’t meet spec | Re-encode to required format/bitrate/resolution; confirm publisher specs. |
500–503: NonLinear ad problems
These are overlay/non-linear creatives that failed to load or fit.
| Code | What it means | Quick checks |
|---|---|---|
| 500 | General non-linear error | Verify the non-linear creative is supported and properly configured. |
| 501 | Non-linear dimensions mismatch | Resize assets to fit the overlay area; supply multiple sizes. |
| 502 | Non-linear resource fetch failed | Check resource URL, CDN, and network policies. |
| 503 | Unsupported non-linear resource type | Provide supported resource types and add fallbacks. |
600–604: Companion ad problems
Companions are the “sidecar” creatives that show alongside video.
| Code | What it means | Quick checks |
|---|---|---|
| 600 | General companion error | Confirm companion slots exist and the player supports companions. |
| 601 | Companion dimensions mismatch | Use the correct companion sizes for the page layout. |
| 602 | Required companion not displayed | Ensure the page has a companion container; verify requirements and rendering logic. |
| 603 | Companion resource fetch failed | Check URL reachability and CDN performance. |
| 604 | Unsupported companion resource type | Provide supported resource types (image/HTML) and add fallbacks. |
900–902: Unknown / interactive / VPAID issues
These are often environment-specific and require logs.
| Code | What it means | Quick checks |
|---|---|---|
| 900 | Undefined error | Check player console logs; validate XML and media; test in another player. |
| 901 | General VPAID error | VPAID is fragile; verify sandbox/iframe policies and consider standard VAST instead. |
| 902 | InteractiveCreativeFile error | Confirm the file format and that the player supports interactive creatives. |
Common Google IMA SDK codes (1000+)
If you’re using Google IMA, you may see SDK-specific codes that are not part of the core IAB VAST error list.
| Code | What it means | Quick checks |
|---|---|---|
| 1005 | Ad request failed (often CORS) | Confirm CORS headers for the ad tag, wrappers, media files, and trackers. |
| 1007 | Media asset not found/supported | Provide mobile-friendly formats; ensure the right creative targets the right device. |
| 1009 | Empty VAST response / expected no-fill | Compare error rate to fill rate; ensure you have fallback demand. |
| 1010 | Unknown/malformed response | Validate XML, inspect the raw response, confirm server isn’t truncating content. |
| 1011 | Unsupported locale | Check the IMA SDK locale configuration and set a supported locale. |
| 1012 | Request blocked / network error | Look for malformed XML or blocked requests; check network filters. |
| 1013 | Invalid ad tag URL | Ensure URL is correctly encoded (especially query params and macros). |
| 1020 | Stream initialisation failed (SSAI) | Verify stream/SSAI configuration; check SSAI provider logs. |
| 1021 | Asset fallback returned no ad | Ensure fallback line items are active and there’s enough demand in the fallback chain. |
| 1101 | Invalid arguments in SDK request | Check IMA integration code; verify SDK method params and request options. |
| 1105 | Invalid AdX extension | Review GAM/AdX extensions in the response; contact platform support if needed. |
| 1205 | Browser prevented playback (autoplay) | Require user interaction or use muted autoplay where allowed. |
| 2025 | Display object error | Review player/IMA integration and rendering container setup. |
| 2032 | URL access blocked | Check firewall, allowlists, SafeBrowsing/ad-block rules. |
| 2035 | Incorrect path to assets | Verify asset URLs and relative/absolute paths in the creative. |
| 2036 | Flash ad failed to load | Flash is deprecated; replace with HTML5 / standard video formats. |
| 2048 | CORS / mixed-content security violation | Ensure HTTPS for all ad assets and redirects; remove HTTP calls on HTTPS pages. |
Why do I see different error codes in different players?
Players and SDKs don’t all report errors the same way. Some map issues to generic codes, and some (like IMA) add their own error ranges.
What’s the fastest way to diagnose wrapper errors?
Unwrap the chain and find the first hop that’s slow, empty, or invalid. Wrapper depth and timeouts are the top causes of 3xx errors.
What’s the fastest way to diagnose 4xx media issues?
Open the <MediaFile> URL directly, confirm it plays, then verify MIME type, codec, and HTTPS/CORS policies.
Next step: test your tag end-to-end
If you want a faster workflow, use our VAST Tag Tester to validate the XML, follow wrappers, and spot media/codec issues before they impact delivery.
Test VAST errors in seconds
If you’re troubleshooting a VAST error code, the fastest path to a fix is to:
- Validate the XML
- Follow wrapper redirects
- Verify media file playback and MIME types
- Create an account to run VAST analysis for deeper insights
Use the VAST Tag Tester to inspect your tag and catch common issues.