> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gcore.com/llms.txt
> Use this file to discover all available pages before exploring further.

# VOD issues

> Troubleshoot common VOD upload, transcoding, and playback errors including HTTP 503, stuck Pending status, and slow segment latency.

These are common VOD upload, transcoding, and playback failures, with the check that isolates each one.

## HTTP 503 on a video request

*Possible cause*: The origin or transcoder is temporarily unable to serve the asset.\
*Suggested solution*: Retry the request after a short delay. If the error persists for one video, the processing status is visible in the [Gcore Customer Portal](https://portal.gcore.com). If multiple videos are affected, current outages appear on the [Gcore status page](https://status.gcore.com/). The [HTTP status codes](/streaming/faq/http-status-codes) article lists the difference between 500, 502, and 503.

## Upload interrupted after closing the browser

*Possible cause*: The browser window was closed or reloaded during the upload.\
*Suggested solution*: Start the upload again. For files larger than 500 MB, Gcore resumes the upload from the last completed chunk instead of uploading the entire file again.

## Upload fails because storage quota is exhausted

*Possible cause*: The account has no remaining storage quota.\
*Suggested solution*: Open **Reports / Billing** in the Customer Portal and review the Video Hosting volume in GB report. The [usage reports](/streaming/billing/usage-and-billing-reports) article shows how the storage limit is calculated. [Gcore support](mailto:support@gcore.com) can increase the quota.

## Upload interrupted by session timeout

*Possible cause*: Too many large files are being uploaded within one Customer Portal session.\
*Suggested solution*: Upload in smaller batches — about 10 files at a time — or send the file through [API upload](/streaming/video-hosting/upload-video-via-api).

## Video stuck in Pending status

*Possible cause*: The transcoding queue is long or already processing large files.\
*Suggested solution*: Wait and return to the video. Playback becomes available at `Viewable`; `Ready` means all renditions are complete. The [VOD status](/streaming/video-hosting/vod-status) article lists the complete status lifecycle.

## Error status with inconsistent source parameters

*Possible cause*: The source file changes technical parameters mid-file — pixel format, color range, codec parameters, or stream structure. A known case is a switch from `yuv420p` to `yuvj420p` near the end. Reprocessing the same file usually fails again because the defect is already in the uploaded source.

*Suggested solution*:

* Inspect the file with `ffprobe`.
* Confirm that video parameters stay stable for the full duration.
* Re-export the file with consistent parameters from start to finish.
* If the defect is only at the end, trim the broken segment and upload the corrected file.
* If the source came from a live recording, check whether the encoder changed parameters during the broadcast.

## HTTP 404 on a video request

*Possible cause*: The video entity does not exist, or transcoding has not produced the first segments yet (`Empty` or `Pending`).\
*Suggested solution*: Confirm the request URL and the video status in the Customer Portal. Response meanings for 404 and the other codes are in the [HTTP status codes](/streaming/faq/http-status-codes) article.

## High segment latency or slow TTFB

*Possible cause*: Slow requests may be cache misses. On low-traffic streams, edge caches can remain cold, so segments are fetched from the origin again and TTFB increases.\
*Suggested solution*: Confirm whether the slow requests are cache misses. [Improve delivery speed](/cdn/video-cdn/improve-video-delivery-speed) covers origin shielding and cache TTL.
