1. The problem I’m having:
Hi!
When I start a stream from my Jellyfin server, I get these errors.
The stream is starting and no problem what I can see, so is this an error I should care about?
2. Error messages and/or full log output:
{
"level": "error",
"ts": 1738858257.6554253,
"logger": "http.handlers.reverse_proxy",
"msg": "aborting with incomplete response",
"upstream": "jellyfin:8096",
"duration": 0.020272269,
"request": {
"client_ip": "##.##.##.##",
"headers": {
"Accept-Encoding": [
"gzip, deflate, br"
],
"Icy-Metadata": [
"1"
],
"User-Agent": [
"Jellyfin Android/2.6.2 (Linux;Android 15) ExoPlayerLib/2.19.1"
],
"X-Forwarded-For": [
"##.##.##.##"
],
"X-Forwarded-Host": [
"jellyfin.domain.tld"
],
"X-Forwarded-Proto": [
"https"
]
},
"host": "jellyfin.domain.tld",
"method": "GET",
"proto": "HTTP/2.0",
"remote_ip": "##.##.##.##",
"remote_port": "28648",
"tls": {
"cipher_suite": 4865,
"proto": "h2",
"resumed": false,
"server_name": "jellyfin.domain.tld",
"version": 772
},
"uri": "/Videos/157fb2ae-1a95-2b35-7357-c29b556cbd50/stream?static=true&playSessionId=f583a822fdca4c0f81015c55cece4267&mediaSourceId=157fb2ae1a952b357357c29b556cbd50&deviceId=7693145f6bd466dafe622119623f416d9ccafc213afd09d9&streamOptions=%7B%7D"
},
"error": "writing: http2: stream closed"
}
{
"level": "error",
"ts": 1738858275.891016,
"logger": "http.handlers.reverse_proxy",
"msg": "aborting with incomplete response",
"upstream": "jellyfin:8096",
"duration": 0.030669804,
"request": {
"client_ip": "##.##.##.##",
"headers": {
"Accept-Encoding": [
"identity"
],
"Icy-Metadata": [
"1"
],
"Range": [
"bytes=14651851754-"
],
"User-Agent": [
"Jellyfin Android/2.6.2 (Linux;Android 15) ExoPlayerLib/2.19.1"
],
"X-Forwarded-For": [
"##.##.##.##"
],
"X-Forwarded-Host": [
"jellyfin.domain.tld"
],
"X-Forwarded-Proto": [
"https"
]
},
"host": "jellyfin.domain.tld",
"method": "GET",
"proto": "HTTP/3.0",
"remote_ip": "##.##.##.##",
"remote_port": "28662",
"tls": {
"cipher_suite": 4865,
"proto": "h3",
"resumed": false,
"server_name": "jellyfin.domain.tld",
"version": 772
},
"uri": "/Videos/157fb2ae-1a95-2b35-7357-c29b556cbd50/stream?static=true&playSessionId=f583a822fdca4c0f81015c55cece4267&mediaSourceId=157fb2ae1a952b357357c29b556cbd50&deviceId=7693145f6bd466dafe622119623f416d9ccafc213afd09d9&streamOptions=%7B%7D"
},
"error": "writing: H3_REQUEST_CANCELLED"
}
3. Caddy version:
2.9.1
4. How I installed and ran Caddy:
Docker compose.
a. System environment:
Ubuntu server 22.04.5. Run all services in Docker.
c. Service/unit/compose file:
version: "3.7"
services:
caddy:
container_name: caddy
# image: caddy:latest
build: .
restart: unless-stopped
ports:
- 80:80
- 443:443
- 443:443/udp
volumes:
- ./data/Caddyfile:/etc/caddy/Caddyfile
- ./data/data:/data
- ./data/config:/config
networks:
- jellyfin_default
- app2_default
- app3_default
- app4_default
networks:
jellyfin_default:
external: true
app2_default:
external: true
app3_default:
external: true
app4_default:
external: true
d. My complete Caddy config:
*.domain.tld {
tls {
dns cloudflare 123456789
}
@jellyfin host jellyfin.domain.tld
handle @jellyfin {
reverse_proxy jellyfin:8096
}
@app2 host app2.domain.tld
handle @app2 {
reverse_proxy app2:123
}
@app3 host app3.domain.tld
handle @app3 {
reverse_proxy app3:123
}
@app4 host app4.domain.tld
handle @app4 {
reverse_proxy app4:123
}
# Fallback for otherwise unhandled domains
handle {
abort
}
}