Audio adaptation set declares no language
Without @lang, players cannot honour the viewer’s language preference.
What it means
An audio <AdaptationSet> omits the @lang attribute, so the track exists but is unidentified. A <Role> element says what a track is for; @lang says what language it is in, and only the latter drives automatic selection.
Why it matters
Players and platforms select audio by language tag. Without one, a multi-language stream presents unlabelled options and automatic selection cannot work, so viewers get whichever track happens to be first.
How to fix it
- Add lang to each audio <AdaptationSet> using an RFC 5646 tag such as "en" or "pt-BR".
- Add a <Role> with value "main" to mark the primary track, and "alternate" or "commentary" for others.
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 "Audio adaptation set declares no language" mean?
- An audio <AdaptationSet> omits the @lang attribute, so the track exists but is unidentified. A <Role> element says what a track is for; @lang says what language it is in, and only the latter drives automatic selection.
- Why does it matter?
- Players and platforms select audio by language tag. Without one, a multi-language stream presents unlabelled options and automatic selection cannot work, so viewers get whichever track happens to be first.
- How do I fix it?
- 1. Add lang to each audio <AdaptationSet> using an RFC 5646 tag such as "en" or "pt-BR". 2. Add a <Role> with value "main" to mark the primary track, and "alternate" or "commentary" for others.
- 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 DASH manifest is not well-formed XMLThe document could not be parsed as XML, so nothing else could be checked.
- 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.