VAST (Video Ad Serving Template) error codes are standardised numeric codes that report why a VAST ad call failed. They are defined by the IAB Tech Lab in the VAST specification and fired as tracking pixel calls to error tracking endpoints when an ad fails to load or play. In CTV, VAST errors directly impact fill rate, impressions delivered, and campaign performance. Understanding which errors are occurring — and why — is essential for troubleshooting India CTV ad delivery.
How VAST errors work
When a CTV player or SSAI system encounters a problem with a VAST ad, it fires the error URL defined in the VAST response's <Error> element, appending the error code as a macro (typically [ERRORCODE]). This fires a pixel that the ad server records as an error event. The error code indicates where in the VAST chain the failure occurred: at the VAST XML parsing stage, during wrapper chain resolution, at the media file fetch stage, or during playback.
VAST errors do not always mean the ad didn't serve — some errors (like 405 VPAID not supported) result in fallback to a different creative, while others (like 301 redirect limit exceeded) result in a no-fill. The distinction matters for diagnosis: high error rates with zero impact on delivery indicate benign fallback; high error rates with fill rate degradation indicate genuine delivery failures.
VAST error code reference
| Error code | Meaning | Stage |
|---|---|---|
| 100 | XML parsing error — VAST document malformed | VAST parsing |
| 101 | VAST schema validation error | VAST parsing |
| 102 | VAST version not supported by player | VAST parsing |
| 200 | Trafficking error — VAST does not match the player's expectations | VAST validation |
| 201 | Video player received an ad type it was not expecting | VAST validation |
| 202 | VAST linear ad duration was longer than maximum allowed | VAST validation |
| 203 | Companion ad not available | VAST validation |
| 300 | General wrapper error | Wrapper chain |
| 301 | Timeout of VAST URI (wrapper redirect took too long) | Wrapper chain |
| 302 | Wrapper limit reached — too many wrapper redirects | Wrapper chain |
| 303 | No ads VAST response after wrapper chain | Wrapper chain |
| 400 | General linear error | Media file |
| 401 | File not found — media file URL returned 404 | Media file |
| 402 | Media file URI request timeout | Media file |
| 403 | Media file format not supported by player | Media file |
| 405 | VPAID not supported — player cannot execute VPAID | Media file |
| 500 | General non-linear error | Non-linear |
| 600 | General companion error | Companion |
| 900 | Undefined error | Unknown |
| 901 | General VPAID error | VPAID |
Most common VAST errors in CTV
Error 301 (Wrapper timeout): The most common high-impact VAST error in CTV. The VAST wrapper chain (the chain of redirects from publisher ad server → SSP → DSP ad server → final creative) took longer than the player's timeout budget. In CTV, players typically allow 5–10 seconds for the full chain to resolve. Chains involving 3+ hops consistently cause 301 errors, especially in low-bandwidth conditions.
Error 302 (Wrapper limit reached): The player hit a configurable maximum wrapper redirect depth (commonly 3–5 redirects) and stopped resolving. This is a configuration-level error at either the player or the ad server. Publishers should set a wrapper depth limit of 3 or less for CTV to avoid this.
Error 303 (No ads after chain): The wrapper chain resolved successfully, but the final inline VAST returned an empty ads response — meaning the demand source had no eligible ad to serve. This is a fill rate issue, not a technical error. High 303 rates indicate the bid request is not matching demand (targeting too narrow, low floor met by no bid).
Error 405 (VPAID not supported): A VPAID creative was returned but the CTV player does not support VPAID (most CTV players do not). This indicates a creative trafficking error — the buyer's ad server returned a VPAID creative in a CTV context. Publishers should block VPAID on CTV inventory; buyers should ensure CTV creatives are standard VAST MP4, not VPAID.
Error 403 (Media format not supported): The media file in the VAST response is in a format (e.g., Flash, WebM) not supported by the CTV player. In modern CTV, H.264 MP4 is the universal format. Any other format will generate 403 errors on CTV players.
India-specific VAST error patterns
High 301 (wrapper timeout) rates on non-metro connections: India's connectivity varies significantly by geography. Campaigns running on connected TVs in tier 2 and tier 3 cities may show elevated 301 rates compared to metro campaigns because the user's connection (JioFiber vs fixed broadband vs mobile hotspot) affects the time available for the wrapper chain to resolve within the SSAI system's timeout window.
301 and 302 spikes during live events: IPL and major live events generate high concurrent viewer counts on JioHotstar, creating ad server load spikes. During peak concurrent viewing (match starts, key overs), wrapper chain latency increases and 301 errors spike. Publishers and SSPs that have not provisioned for peak load show this pattern predictably.
403 errors from legacy creative assets: Some India advertisers continue to serve creatives in Flash-derived or non-standard formats that were acceptable in earlier digital advertising. CTV players universally reject these. A sudden rise in 403 errors after a new creative rotation usually indicates a problematic asset from a specific brand or campaign.
Diagnosing and fixing VAST errors
Step 1 — Identify the error distribution: Pull error code breakdown from your ad server or SSP. The distribution tells you the problem category. Mostly 301/302 = infrastructure/latency; mostly 303 = demand/fill; mostly 403/405 = creative format.
Step 2 — Reduce wrapper depth: For 301/302 errors, audit your VAST chain depth. Use a VAST validator tool (VAST Inspector, IAB's VAST Validator) to trace the full redirect chain. If any impression path involves 3+ hops, redesign the chain. Prefer direct VAST URLs from ad servers over chained wrappers.
Step 3 — Increase demand to address 303 errors: For high 303 rates, review floor pricing (may be too high for available demand), add additional SSP demand sources, or widen targeting parameters to increase bid eligibility.
Step 4 — Audit creative assets for 403/405: For 403 or 405 errors, pull the creative associated with erroring impressions. Confirm all CTV creatives are H.264 MP4, non-VPAID, and within bitrate and resolution specs for the publisher's player.