The DASH manifest is not well-formed XML
The document could not be parsed as XML, so nothing else could be checked.
What it means
An MPD is an XML document and must be well-formed: tags closed, attributes quoted, entities escaped. This one is not.
Why it matters
Players parse the MPD with a strict XML parser and reject it outright. Nothing plays. Because the failure is at the parser, the player usually reports something unhelpful about a manifest error rather than pointing at the line.
How to fix it
- The reported line and column are where the parser gave up; the actual mistake is often just before it.
- An unescaped ampersand in a URL is the most common cause — it must be written & inside XML.
- Truncated manifests parse as unclosed tags; check whether the origin cut the response short.
Check your own stream
The free DASH validator runs this check on every analysis and links each finding straight back here.
Open the DASH validator →Frequently asked questions
- What does "The DASH manifest is not well-formed XML" mean?
- An MPD is an XML document and must be well-formed: tags closed, attributes quoted, entities escaped. This one is not.
- Why does it matter?
- Players parse the MPD with a strict XML parser and reject it outright. Nothing plays. Because the failure is at the parser, the player usually reports something unhelpful about a manifest error rather than pointing at the line.
- How do I fix it?
- 1. The reported line and column are where the parser gave up; the actual mistake is often just before it. 2. An unescaped ampersand in a URL is the most common cause — it must be written & inside XML. 3. Truncated manifests parse as unclosed tags; check whether the origin cut the response short.
- How can I detect this automatically?
- Paste your MPEG-DASH streaming URL into StreamTest's free DASH validator. It runs this check on every analysis, flags the finding, and links straight back to this page — no sign-up required.
Related DASH checks
- DASH manifest has no UTCTiming elementA live MPD without UTCTiming forces players to trust the device clock, so any skew on the viewer’s machine becomes stalls or missing segments.
- DASH availabilityStartTime is in the futureThe manifest claims the presentation starts later than the current time, so no segment is available yet and playback cannot begin.
- The document has no MPD root elementThe XML parsed, but its root is not <MPD>, so it is not a DASH manifest.
- MPD declares no profileWithout @profiles a player cannot tell which DASH feature set the manifest expects.
- MPD declares no minBufferTimePlayers use this required attribute to size the initial buffer before starting playback.
- MPD contains no periodsThere is no <Period>, so the manifest describes no content at all.