VAST Error Code Troubleshooting Matrix
The VAST specs list a number of error codes that can be expected, but do not go into detail about the code. This table lists out the various VAST error codes and their potential root causes based on the experiences of IAB members.
Original contribution by Rubicon Project, and now maintained by the "Video Tools & Best Practices" sub-group.
|Error Code||Fatal?||Definition||Possible Causes & Actions|
|100||Yes||XML parsing error.||VAST supplied in adm is not a valid XML document.
URL supplied in nurl does not resolve to a valid XML document.
Nurl only: Server did not respond with VAST, or at all when player called the nurl.
Perhaps a CORS issue
Ensure VAST XML is properly formatted per IAB spec
|101||Yes||VAST schema validation error||The VAST validates as XML, but does not validate per the VAST schema (i.e. there are missing mandatory elements or attributes, or combinations of elements/attributes that are not permissible).
Some possible reasons for invalidity:
InLine and Wrapper both present. AdTagURI missing in Wrapper element. Duration missing. Missing Ad node or MediaFile node. Offset attribute on Progress event is missing or not a valid value.
Ensure VAST XML is properly formatted per IAB spec
|102||Yes||VAST version of response not supported.||Bidder did not respect the VAST version(s) listed in the bid request.
Exchange is sending wrong VAST version(s) in bid request.
VAST does not contain version (this could also be considered a schema validation issue)
|200||Maybe||Trafficking error. Video player received an ad type that it was not expecting and/or cannot display.||Player wanted Skippable Linear, but got back Linear.
Player wanted Linear, but got back Skippable Linear.
For Skippable Linear, skipoffset doesn’t meet publisher expectations.
Bidder did not respect the skippability/skipoffset in the bid request.
Exchange is sending wrong skippability/skipoffset in the bid request.
Potentially any of the reasons in 201-203
Make sure proper ad types are being sent and skippable attributes are being respected
|201||Maybe||Video player expecting different linearity.||Bidder did not respect the linearity in the bid request.
Exchange is sending wrong linearity in the bid request
Ensure linearity requested is being respected
|202||Maybe||Video player expecting different duration.||Bidder did not respect the duration in the bid request.
Exchange is sending wrong duration in the bid request
Ensure duration requested is being respected
|203||Maybe||Video player expecting different size.||No MediaFile is available with dimensions that are matching for the device (i.e. mobile devices that cannot play full HD).
No MediaFile is available with an acceptable bitrate.
Bidder did not respect maxbitrate
Exchange is not sending maxbitrate
High bitrate creatives attempting to serve on mobile devices
Ensure multiple mediafiles options to cover different devices and environments
|204||Yes||Ad category was required but not provided|
|300||Yes||General Wrapper error.||Check that all VAST URIs are reachable and not timing out
Ensure wrapper limit is not reached
|301||Yes||Timeout of VAST URI provided in Wrapper element, or of VAST URI provided in a subsequent Wrapper element. Includes request errors such as invalid URI, unreachable or request timeout for URI, and security or other exceptions related to requesting a VAST URI.||Check that the VAST URI is valid and reachable.
This could be due to poor internet connection or non-optimized page and therefore request times out. Check whether this occurs more on mobile devices (may not be reproducible due to network limits).
Check timeout limit of your player to ensure this isn't being reached
This can be caused by HTTP serving to HTTPS.
|302||Yes||Wrapper limit reached, as defined by the video player. Too many Wrapper responses have been received with no InLine response.||This can be caused by a circular loop of daisy chaining (one network bouncing to another and another).
Too many wrappers
Look into increasing the wrapper limit of your player to accommodate these creatives
|303||Yes||No ads VAST response after one or more Wrappers. Also includes number of empty VAST responses from fallback.||No Ad element in VAST doc (after following wrappers).
When working with third-party networks, the fill-rate can be less than 100%. If so, this is an expected error. For example, if the third-party expects to fill 60% of the time, you should expect 40% errors. You can check to ensure that the error rate is in line with the fill-rate of the third-party network.
Ensure the bids being returned do not have empty VAST
|304||Yes||InLine response returned ad unit that failed to result in ad display within defined time limit|
|400||Yes||General linear error. Video player is unable to display the linear ad.||Check that the MediaFile a valid video file of the specified format in the request
Make sure the URL returns a valid video asset
Check for browser restrictions such as autoplay blocking, auto-mute, etc
See also possible causes for 401-405
|401||Yes||File not found. Unable to find Linear/MediaFile from URI.||Ensure that all MediaFiles in the response return a valid video asset|
|402||Yes||Timeout of MediaFile URI.||Issue with CDN server.
Timeout (in milliseconds) when loading a video ad media file. If loading takes longer than this timeout, the ad playback is canceled.
Can be caused by low bandwidth, or poor website implementation with competing requests that delay loading of the media file.
Can occur when a video auto-plays in a mobile environment, since it should be click-to-play (there are some exceptions).
Increase the timeout limit of your player
|403||Yes||Could not find MediaFile that is supported by this video player, based on the attributes of the MediaFile element.||Bidder did not respect mime types in bid request.
Exchange did not send correct mime types.
This may indicate that the wrong creative type attempted to play. For example, a Flash creative attempted to play on a mobile device or WebM on iOS.
This error type is more common on mobile.
Ad is inline but no compatible media file found. Generally, if the player reaches a point where it sees no MediaFiles in the array of mediafiles considered eligible
|405||Yes||Problem displaying MediaFile.||CORS issue for CDN server.
Mismatch between MIME type and video file type.
Unsupported delivery method
|406||Yes||Mezzanine was required but not provided. Ad not served.||Ensure that there is a mezzanine file included in the response|
|407||Yes||Mezzanine is in the process of being downloaded for the first time. Download may take several hours. Ad will not be served until mezzanine is downloaded and transcoded.||This is an expected error while the video is being transcoded. This error will stop once transcoding is complete and available.|
|408||Yes||Conditional ad rejected|
|409||Yes||Interactive unit in the InteractiveCreativeFile node was not executed.||Ensure that any interactive creatives returned in your response successfully play when requested|
|410||Yes||Verification unit in the Verification node was not executed.||Check that the verification code is properly implemented in the response|
|411||Yes||Mezzanine was provided as required, but file did not meet required specification. Ad not served.|
|500||Yes||General NonLinearAds error.|
|501||Yes||Unable to display NonLinear Ad because creative dimensions do not align with creative display area (i.e., creative dimension too large).|
|502||Yes||Unable to fetch NonLinearAds/NonLinear resource.|
|503||Yes||Could not find NonLinearresource with supported type.||This error can be caused when a creative size is larger than the player size, or not a proper media type.|
|600||Maybe||General CompanionAds error.|
|601||Maybe||Unable to display companion because creative dimensions do not fit within Companion display area (i.e., no available space).||Ensure that the companion ad size has dimensions that fit the ad unit from the request|
|602||Maybe||Unable to display Required Companion.|
|603||Maybe||Unable to fetch CompanionAds/Companion resource.|
|604||Maybe||Could not find Companion resource with supported type.|
|900||Yes||Undefined error.||CORS issue|
|901||Yes||General VPAID error.||This can occur when a Flash VPAID ad attempts to play in a HTML5 player. Certain players may not support VPAID Flash in an HTML5 player. Preventing trafficking of these creatives is recommended.
HTML5 VPAID “wrapper” from IAS/DV/MOAT that is attempting to load an underlying VAST document that does not have an MP4 asset
VPAID that selectively chooses not to play an ad IAS/DV blocking tags?
Is buyer attempting to arbitrage (i.e. bid on the impression without a determined advertiser/buyer, and attempting to initiate auction/resale client side
Player that does not correctly check that the mime type of the VPAID is acceptable (i.e. JWPlayer HTML5 will naively try and load Flash VPAID, even if there are alternative MediaFiles that are raw assets. This occurs, for example, with DCM if the VPAID adaptor type is set to Flash only – Flash VPAID + MP4,FLV,WebM are present, but JWPlayer attempts to execute the VPAID and aborts. HTML5 only or HTML5 + Flash option works fine)