Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Repeated live DASH Source errors: DashManifestParser ParserException contentIsMalformed dataType=4

Abierto
#3,418 2 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 4 días

@tonihei ya está trabajando en esto.

Desde el 24/9/2026.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Activo
Stack tecnológico
android, java

Línea de trabajo

Comienza con DashManifestParser.java:124 y ParsingLoadable.java:185, y luego sigue cómo HTTP 500, 504, las respuestas vacías y los fallos de DNS llegan al procesamiento. Revisa el log redactado adjunto y el HAR de prueba, teniendo en cuenta que los cuerpos de las respuestas no están disponibles. Se considerará terminado cuando se establezca si la ParserException notificada es esperada y se identifique el cambio adecuado en el manejo o la documentación.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

question

Media3 version

1.7.1 (androidx.media3:media3-exoplayer / media3-exoplayer-dash)

Devices that reproduce the issue

Samsung SM-S921B, Android 16

Devices that do not reproduce the issue

Not isolated to one OEM. Same ExoPlaybackException: Source error / DashManifestParser stack seen on other Android devices on this live DASH feed.

Reproducible in the demo app?

Cannot provide a public URL. Stream is authenticated live DASH (SSAI). Repro is: play live DASH for an extended period; MPD reload occasionally fails.

Reproduction steps

  1. Play a live DASH stream (application/dash+xml / master.mpd).
  2. Leave playback running (manifest refreshes).
  3. Observe repeated TYPE_SOURCE failures in one session (examples below: 19:05, 19:18, 20:07 on 2026-09-13).

Expected result

MPD refresh either succeeds, or a failed HTTP load is reported as an IO / HTTP error (HttpDataSourceException / response code) without DashManifestParser treating the payload as a malformed MPD.

Actual result

Repeated:

androidx.media3.exoplayer.ExoPlaybackException: Source error
Caused by: androidx.media3.common.ParserException:
  inputStream does not contain a valid media presentation description
  {contentIsMalformed=true, dataType=4}
    at androidx.media3.exoplayer.dash.manifest.DashManifestParser.parse(DashManifestParser.java:124)
    at androidx.media3.exoplayer.dash.manifest.DashManifestParser.parse(DashManifestParser.java:69)
    at androidx.media3.exoplayer.upstream.ParsingLoadable.load(ParsingLoadable.java:185)

Same session, three times:

Time Load failure immediately before Then Exo
19:05:32 / 19:05:41 HTTP 500 on .../DASH_ENC/master.mpd Source error + ParserException
19:18:36 / 19:18:59 HTTP 500 on master.mpd (other region) same
20:06:16 / 20:07:13 UnknownHostException for the MPD host same

In another session, initialize GET on .../master.mpd returned HTTP 504, empty body (~6.4s); Exo still surfaced the same ParserException / contentIsMalformed=true / dataType=4 on the play MPD.

We do not have the response body for a 3002-after-HTTP-200 case. Bodies were not captured in logcat.

Question

Is contentIsMalformed=true / DashManifestParser.parse expected when:

  • the MPD URL returns HTTP 500 (non-MPD or error body), or
  • the body is empty (504), or
  • DNS fails then a later parse runs?

If yes, we will treat this as working as designed and handle 5xx/empty at the data source. If not, we can recapture a Charles HAR with response.content when we next hit HTTP 200 + this exception.

Media

Redacted log + stub HAR (no PII, no full query string, no MPD XML — bodies were never logged):

  • media3-repeated-source-manifest-errors-redacted.log
  • media3-mpd-http-500-redacted.har

Bug Report Checklist

  • Searched existing issues for DashManifestParser / contentIsMalformed / Source error on live DASH
  • Media3 version listed
  • Device listed
  • Demo app (private live stream)
  • Steps / expected / actual
  • Stack traces (redacted log attached)
Lenguaje dominante
Java
Estrellas
3.1k
Forks
998
Merge medio
6 d 8 h
PR fusionados (30 d)
2

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de androidx/media

Todos los issues de androidx/media

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.