All VAST error codes
100XML errors · VAST 2.0+

VAST Error 100: XML parsing error

The player could not parse the VAST response as XML — the document is malformed, truncated, or not XML at all.

VAST error 100 fires before the player looks at a single ad element: the raw response failed XML parsing. Unclosed tags, unescaped ampersands in URLs, broken CDATA sections, a wrong character encoding, or a truncated response all land here.

It also fires when the ad server returns something that is not XML — an HTML error page, a JSON error body, or an empty 200 response with a text/html content type. The player asked for VAST and got something else.

Why error 100 happens

Unescaped special characters in URLs

Tracking URLs often contain raw & characters. Outside a CDATA block, & must be escaped as & — one raw ampersand breaks the whole document.

Broken or nested CDATA sections

Media file and tracking URLs are usually wrapped in CDATA. A missing ]]> terminator, or a URL that itself contains ]]>, corrupts everything after it.

The server returned an error page instead of XML

A 500/403 HTML page, a CDN block page, or a JSON error body served with a 200 status will fail XML parsing even though the HTTP request looked successful.

Truncated response

A proxy, load balancer, or slow origin cut the response mid-document. The XML starts fine and ends abruptly, so the parser reports an unexpected end of input.

Encoding mismatch

The XML declaration claims UTF-8 but the body contains bytes in another encoding (often from ad copy pasted into a creative name), producing invalid character errors.

How to fix VAST error 100

  1. 1

    Fetch the tag with curl and look at the raw body

    Request the VAST URL directly and inspect what actually comes back. If you see HTML or JSON, the problem is server-side routing or an upstream error, not the XML.

  2. 2

    Run the response through an XML validator

    A validator pinpoints the exact line and column of the first syntax error — usually an unescaped & or an unterminated CDATA section.

  3. 3

    Check every URL for raw ampersands

    Any URL outside CDATA must escape & as &. The safest fix is wrapping every URL-bearing element in CDATA.

  4. 4

    Compare Content-Length to the received size

    If the document ends abruptly, confirm whether the origin sent the full body or a proxy truncated it. Check gzip settings — a broken compressed stream also parses as garbage.

  5. 5

    Re-validate after each fix

    XML parsing stops at the first error, so one fix often reveals the next problem. Iterate until the document parses cleanly end to end.

Free VAST validator

Seeing error 100 on a live tag?

Paste the tag URL or XML — the validator resolves the full wrapper chain, validates the schema, downloads every media file, and shows exactly which stage fails.

Validate your VAST tag

VAST error 100 — frequently asked questions

Why does the tag work in my browser but throw error 100 in the player?+

Browsers render XML leniently and often display broken documents anyway. Video players use strict parsers — a single unescaped ampersand that a browser tolerates will fail in the player.

Can a firewall or ad blocker cause VAST error 100?+

Yes. Corporate proxies and ad blockers commonly intercept ad server requests and return an HTML block page. The player receives non-XML content and reports a parse error.

Is error 100 my ad server's fault or the creative's?+

Usually the ad server or whoever assembled the XML. Creatives cause it indirectly when their metadata (names, click URLs) contains characters that were inserted without escaping.

Related error codes

Keep reading