Problem
Sentry ANDROID-TV-3E is an unresolved Android TV playback error. It recorded 633 production events across 416 users in the last 7 days and was last seen on 2026-09-04 at 10:30 UTC.
The latest event is from io.put.putio@2.8.0+91. Media3 fails while loading an HLS source with ERROR_CODE_IO_BAD_HTTP_STATUS; the underlying response is HTTP 400.
Investigation
Work in an isolated putio-android worktree. Start with read-only reproduction and root-cause analysis:
- Identify which HLS request returns 400 and whether the request URL, headers, token, or source selection is invalid.
- Determine whether the fault is Android client behavior, the playback API/backend, or shared source data.
- Record reproducible evidence and the affected release/device boundary.
If the fault is frontend-owned and a scoped fix is proven, a ready pull request is allowed. If the fault is backend-owned, stop at the verdict and backend handoff; do not create a backend branch or pull request. Do not merge, deploy, change Sentry state, or message customers.
Verification
- Reproduction or event evidence identifies the failing request and ownership boundary.
- The issue records either a verified frontend fix with repository checks or a backend handoff with concrete evidence.
- The Sentry trend is rechecked after any shipped fix; a green workflow alone is not recovery proof.
Backend boundary: if the cause is backend-owned, update the relevant existing backend issue only. If no matching backend issue exists, record the verdict here and stop; do not create a backend issue.
Problem
Sentry ANDROID-TV-3E is an unresolved Android TV playback error. It recorded 633 production events across 416 users in the last 7 days and was last seen on 2026-09-04 at 10:30 UTC.
The latest event is from
io.put.putio@2.8.0+91. Media3 fails while loading an HLS source withERROR_CODE_IO_BAD_HTTP_STATUS; the underlying response is HTTP 400.Investigation
Work in an isolated
putio-androidworktree. Start with read-only reproduction and root-cause analysis:If the fault is frontend-owned and a scoped fix is proven, a ready pull request is allowed. If the fault is backend-owned, stop at the verdict and backend handoff; do not create a backend branch or pull request. Do not merge, deploy, change Sentry state, or message customers.
Verification
Backend boundary: if the cause is backend-owned, update the relevant existing backend issue only. If no matching backend issue exists, record the verdict here and stop; do not create a backend issue.