2025-06-28, 12:00 PM
Hello everyone,
I'm seeking expert help for a persistent SyncPlay issue. My setup is Jellyfin 10.10.7 on a SeedIt4.me (Ubuntu) seedbox, accessed via Nginx with a /jellyfin subpath.
The main Jellyfin UI works perfectly. The problem is isolated to WebSockets.
When a browser tries to use SyncPlay, the developer console shows the connection to wss
/[mydomain]/jellyfin/socket fails. The UI button is unresponsive.
The Jellyfin Backend is Working Correctly. I have bypassed Nginx and tested the backend directly from the server's command line using curl. When I send a manual WebSocket upgrade request to http://127.0.0.1:8096/jellyfin/socket, Jellyfin responds correctly with HTTP/1.1 101 Switching Protocols. This proves the application itself is not the source of the failure.
The Nginx and Jellyfin Configurations Are Correct. I have configured both Nginx and Jellyfin according to official documentation for a reverse proxy with SSL Termination and a subpath.
Jellyfin network.xml: BaseUrl is set to /jellyfin and internal HTTPS is disabled.
Nginx jellyfin.conf: I am using the standard headers: proxy_http_version 1.1; , proxy_set_header Upgrade $http_upgrade; , and proxy_set_header Connection "upgrade"; . Normal HTTP traffic is being proxied successfully.
Despite both Jellyfin and Nginx being configured correctly, the proxied WebSocket handshake fails when initiated by a browser. Given that Jellyfin works correctly when contacted directly, but fails when the WebSocket request comes from the Nginx proxy, what could be causing this breakdown in the proxy translation? Could this be a bug in how Jellyfin/Kestrel handles proxied WebSocket connections on a subpath, or a subtle issue with the SeedIt4.me environment?
Thank you for your time.
I'm seeking expert help for a persistent SyncPlay issue. My setup is Jellyfin 10.10.7 on a SeedIt4.me (Ubuntu) seedbox, accessed via Nginx with a /jellyfin subpath.
The main Jellyfin UI works perfectly. The problem is isolated to WebSockets.
When a browser tries to use SyncPlay, the developer console shows the connection to wss

The Jellyfin Backend is Working Correctly. I have bypassed Nginx and tested the backend directly from the server's command line using curl. When I send a manual WebSocket upgrade request to http://127.0.0.1:8096/jellyfin/socket, Jellyfin responds correctly with HTTP/1.1 101 Switching Protocols. This proves the application itself is not the source of the failure.
The Nginx and Jellyfin Configurations Are Correct. I have configured both Nginx and Jellyfin according to official documentation for a reverse proxy with SSL Termination and a subpath.
Jellyfin network.xml: BaseUrl is set to /jellyfin and internal HTTPS is disabled.
Nginx jellyfin.conf: I am using the standard headers: proxy_http_version 1.1; , proxy_set_header Upgrade $http_upgrade; , and proxy_set_header Connection "upgrade"; . Normal HTTP traffic is being proxied successfully.
Despite both Jellyfin and Nginx being configured correctly, the proxied WebSocket handshake fails when initiated by a browser. Given that Jellyfin works correctly when contacted directly, but fails when the WebSocket request comes from the Nginx proxy, what could be causing this breakdown in the proxy translation? Could this be a bug in how Jellyfin/Kestrel handles proxied WebSocket connections on a subpath, or a subtle issue with the SeedIt4.me environment?
Thank you for your time.