New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Traefik v3.0.0 breaks video streams #10683
Comments
Did you see the release notes about the new shorter timeouts because of some CVEs? |
I don't think it has anything to do with timeouts, because it happens immediately, not after some time. |
Hey @Janhouse, Thanks for reaching out. Could you provide a minimal reproducible case (for instance, full Kubernetes manifest to reproduce the issue)? |
Did you use compress middleware? I have same problem while using compress middleware with filebrowser inside my k3s cluster, even I set apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: auth-body-size
spec:
compress:
includedContentTypes:
- text/xml
- text/css
- text/html
- text/plain
- text/javascript
- image/tiff
- image/svg+xml
- application/xml
- application/json
- application/rss+xml
- application/javascript
- application/x-javascript It will cause status code rewrited from So I have to remove the compress middleware entirely to make it work |
I write a k8s yaml to reproduce this problem, a simple html and mp4 video, can't seek progress, unless remove the compress middleware: ---
apiVersion: v1
kind: ConfigMap
metadata:
name: test-server
data:
index.html: |
<html>
<body>
<video controls>
<source src="video.mp4" type="video/mp4">
</video>
</body>
</html>
Caddyfile: |
{
admin off
auto_https off
}
:8080 {
handle_path /video.mp4 {
rewrite * /html/mov_bbb.mp4
reverse_proxy * https://www.w3schools.com {
header_up Host {upstream_hostport}
header_down -*
}
}
file_server * {
root /etc/caddy
}
}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
revisionHistoryLimit: 0
selector:
matchLabels:
app: test
strategy:
type: Recreate
template:
metadata:
labels:
app: test
spec:
containers:
- image: caddy:latest
imagePullPolicy: IfNotPresent
name: test
ports:
- containerPort: 8080
name: test
volumeMounts:
- name: config
mountPath: /etc/caddy
volumes:
- name: config
configMap:
name: test-server
---
apiVersion: v1
kind: Service
metadata:
name: test
labels:
app: test
spec:
ports:
- port: 8080
selector:
app: test
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: test-compress
spec:
compress:
includedContentTypes:
- text/xml
- text/css
- text/html
- text/plain
- text/javascript
- image/tiff
- image/svg+xml
- application/xml
- application/json
- application/rss+xml
- application/javascript
- application/x-javascript
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: test
annotations:
kubernetes.io/ingress.class: traefik
spec:
entryPoints:
- websecure
routes:
- match: Host(`test.dosk.host`)
kind: Rule
services:
- name: test
port: 8080
middlewares:
- name: test-compress |
Hello @springhack, Thank you for the full test case. We think the error may be due to the deletion of the automatic content type detection in v3. Could you give a try to the proposed solution and provide feedback please? |
@nmengin that did not help, issue persists when using contenttype middleware. |
@nmengin add a contenttype middleware won't solve this problem, I read the code and I guess maybe here and here, request with |
Welcome!
What did you do?
Seems like Traefik v3 breaks some http streams. After upgrading to v3.0.0 certain clients were not able to seek videos in Jellyfin. Weirdly it shows
"DownstreamStatus": 0,
and"RequestContentSize": 0,
. No errors on the Jellyfin server side.Downgrading traefik to
2.11
fixes the issue.What did you see instead?
Request on
traefik 3.0.0
Same request on
traefik 2.11
What version of Traefik are you using?
What is your environment & configuration?
If applicable, please paste the log output in DEBUG level
No response
The text was updated successfully, but these errors were encountered: