mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-16 05:43:54 +03:00
[PR #15644] [CLOSED] Fix: Prevent crash in GetOutputFileExtension for streams without URL extension #14371
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/jellyfin/jellyfin/pull/15644
Author: @martenumberto
Created: 11/27/2025
Status: ❌ Closed
Base:
release-10.11.z← Head:fix-streams-without-fileextensions📝 Commits (10+)
0b04ddbBump version to 10.12.08acfa92Translated using Weblate (Marathi)d8f8c94Translated using Weblate (Spanish (Mexico))321df41Translated using Weblate (Hindi)5f714cfTranslated using Weblate (Punjabi)18f9954Translated using Weblate (Korean)0e77c36Update GitHub Artifact Actionsc3ea328Update github/codeql-action action to v4.31.05236d15Translated using Weblate (Mongolian)14ead3bUpdate danielpalme/ReportGenerator-GitHub-Action action to v5.4.18📊 Changes
27 files changed (+131 additions, -91 deletions)
View changed files
📝
.config/dotnet-tools.json(+1 -1)📝
.github/CODEOWNERS(+11 -4)📝
.github/ISSUE_TEMPLATE/issue report.yml(+4 -1)📝
.github/workflows/ci-codeql-analysis.yml(+5 -5)📝
.github/workflows/ci-compat.yml(+8 -8)📝
.github/workflows/ci-openapi.yml(+12 -12)📝
.github/workflows/ci-tests.yml(+3 -3)📝
.github/workflows/commands.yml(+3 -3)📝
.github/workflows/issue-template-check.yml(+2 -2)📝
.github/workflows/release-bump-version.yaml(+2 -2)📝
CONTRIBUTORS.md(+1 -0)📝
Directory.Packages.props(+30 -30)📝
Emby.Server.Implementations/Localization/Core/es-MX.json(+1 -1)📝
Emby.Server.Implementations/Localization/Core/et.json(+1 -1)📝
Emby.Server.Implementations/Localization/Core/gsw.json(+1 -1)📝
Emby.Server.Implementations/Localization/Core/hi.json(+8 -1)📝
Emby.Server.Implementations/Localization/Core/ko.json(+3 -1)📝
Emby.Server.Implementations/Localization/Core/mn.json(+3 -3)📝
Emby.Server.Implementations/Localization/Core/mr.json(+6 -1)📝
Emby.Server.Implementations/Localization/Core/pa.json(+4 -2)...and 7 more files
📄 Description
Describe the changes
This PR adds a defensive fallback to
Jellyfin.Api.Helpers.StreamingHelpers.GetOutputFileExtension.When handling a video request where:
mpeg2video),MediaSource.Containeris not yet populated (due to race conditions during initial probing),...the server currently throws an
InvalidOperationException, resulting in an HTTP 500 error and playback failure.This change adds a default fallback to
.ts(Transport Stream) for video requests when no other extension can be determined. This allows the stream to be passed to ffmpeg for remuxing/transcoding instead of crashing the request.Fixes
Fixes https://github.com/jellyfin/jellyfin/issues/15643
We should considering backport to 10.11.x
How to test
http://provider/stream/12345?token=abc).StreamingHelpers(e.g.,mpeg2video) or trigger a cold start where probing data is missing.System.InvalidOperationException: Failed to find an appropriate file extensionand playback fails.Checklist
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.