recloudstream / recloudstream/cloudstream

Transient error 3003 is not retried for delayed-start On-Demand live streams

Open
#3,094 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Kotlin
Stars
10.7k
Forks
1.1k
Avg merge
1d 23h
Merged PRs (30d)
15

Description

Steps to reproduce
  1. Open an On-Demand live stream that starts after receiving its first HTTP request.
  2. Select the stream once in CloudStream.
  3. CloudStream immediately displays:
    ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED (3003)
  4. Wait approximately 2-3 seconds.
  5. Select the exact same stream again.
  6. The stream now plays successfully.

The same stream opens with one selection in NuvioTV because its player
automatically retries transient playback errors while the source is starting.

Expected behavior

CloudStream should perform a small, bounded number of delayed automatic retries
before displaying error 3003. Pending retries should be cancelled when the user
exits or changes the stream. Permanent HTTP errors such as 401, 403 and 404
should not be retried.

Actual behavior
Image Image

Image 1 shows the first attempt failing with error 3003.
Image 2 shows the exact same stream playing after selecting it again.

Cloudstream version and commit hash

4.8.0 3796406 (stable)
4.8.0-PRE 93d3b36 (latest pre-release)

Android version

Android 9 (LDPlayer 9)

Logcat
No full logcat was captured. The on-screen player error is:

ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED (3003)
Source error
Other details

This occurs when the On-Demand source is cold. The first request starts the
stream on the server, but CloudStream immediately reports error 3003.

After waiting 2-3 seconds, the exact same URL plays successfully without any
change to the URL or stream configuration.

The same source opens with one selection in NuvioTV, which automatically retries
transient playback errors while the stream is starting.

Acknowledgements
  • I am sure my issue is related to the app and NOT some extension.
  • I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
  • I have written a short but informative title.
  • I have updated the app to pre-release version Latest.
  • I will fill out all of the requested information in this form.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing CloudStream's player handling for ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED (3003) during delayed-start On-Demand stream selection. Check how playback errors and stream changes are handled, including cancellation when leaving or changing streams. Done means transient startup failures receive bounded delayed retries, while permanent 401, 403, and 404 errors do not, and the documented reproduction succeeds on the first selection.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.