Jump to content

Emby Stopped Working Only on Roku TV


Go to solution Solved by bryandeagle,

Recommended Posts

bryandeagle
Posted

Emby decided to stop working only on my Roku TV. On my Roku TV it loads into the menu relatively quickly, takes forever to load a title screen once I select a movie, and then it hangs indefinitely trying to play the movie. This happens for all movies, even ones that worked fine earlier. Accessing Emby from my browser still works perfectly. I've attached server logs for both the working and non-working case. Any helpful suggestions are much appreciated. I also tried adding the Emby beta app for Roku and it produced the same results.

working_chrome.txt not_working_roku.txt

Posted

Hi.  Are you using some sort of proxy?  All your addresses to your server are "localhost" which shouldn't be possible from the Roku.

It looks like the call to the server for playback info is never returning...

bryandeagle
Posted

That's correct it's behind an apache reverse proxy, and running in Docker. 

bryandeagle
Posted (edited)

I took the reverse proxy out of the equation and things seem to be working! What's weird is that everything was working before, even though I wasn't properly proxying websockets. I just added the two websocket lines, but that didn't seem to do anything. Maybe the use of websockets are a relatively recent update? Any tips on known-good reverse proxy configs so I can debug mine?

 

<VirtualHost *:80>
        ServerName tv.home

        ProxyPass /embywebsocket ws://localhost:5300/embywebsocket
        ProxyPassReverse /embywebsocket ws://localhost:5300/embywebsocket

        ProxyPass / http://localhost:5300/
        ProxyPassReverse / http://localhost:5300/

        ErrorLog ${APACHE_LOG_DIR}/tv/error.log
        CustomLog ${APACHE_LOG_DIR}/tv/access.log combined
</VirtualHost>

 

Edited by bryandeagle
pir8radio
Posted
15 hours ago, bryandeagle said:

I took the reverse proxy out of the equation and things seem to be working! What's weird is that everything was working before, even though I wasn't properly proxying websockets. I just added the two websocket lines, but that didn't seem to do anything. Maybe the use of websockets are a relatively recent update? Any tips on known-good reverse proxy configs so I can debug mine?

 


<VirtualHost *:80>
        ServerName tv.home

        ProxyPass /embywebsocket ws://localhost:5300/embywebsocket
        ProxyPassReverse /embywebsocket ws://localhost:5300/embywebsocket

        ProxyPass / http://localhost:5300/
        ProxyPassReverse / http://localhost:5300/

        ErrorLog ${APACHE_LOG_DIR}/tv/error.log
        CustomLog ${APACHE_LOG_DIR}/tv/access.log combined
</VirtualHost>

 

 

27 minutes ago, ebr said:

 

I tried to help someone else out with this same issue. We couldn't figure it out, they ended up switching to nginx reverse proxy and all worked well.   I do not use apache so i have not spent the time to install, learn, then troubleshoot why or what the fix could be, I just don't have time.  But as a last ditch effort the other person switched to nginx and I helped him set up his config, no issues.   I think he ended up switching his setup to nginx.     Sorry, that's probably not the answer you want to hear, but we were troubleshooting for like 3 days off and on. 

  • Thanks 1
  • Solution
bryandeagle
Posted

Did a little more debugging. It was acting strange with requests with a "Expect:100-continue" header. Based on this Stack Overflow, I added the following line to my Apache config and everything's working smoothly now. Thanks everyone for having a look.

RequestHeader unset Expect early

 

  • Agree 1
Posted

Excellent.  Thanks for reporting back the solution.

  • 4 months later...
thayesemby
Posted

@bryandeagle would you be able to post your working config? I seem to be having the same issue and i'm not sure on the right way to implement your fix of:

RequestHeader unset Expect early
bryandeagle
Posted
<VirtualHost *:80>
	ServerName tv.home
	RequestHeader unset Expect early
	ProxyPreserveHost On
	ProxyPass /embywebsocket ws://localhost:5300/embywebsocket
	ProxyPassReverse /embywebsocket ws://localhost:5300/embywebsocket
	ProxyPass / http://localhost:5300/
	ProxyPassReverse / http://localhost:5300/
	ErrorLog ${APACHE_LOG_DIR}/tv/error.log
	CustomLog ${APACHE_LOG_DIR}/tv/access.log combined
</VirtualHost>

<VirtualHost *:443>
	ServerName tv.home
	RequestHeader unset Expect early
	ProxyPreserveHost On
	ProxyPass /embywebsocket ws://localhost:5300/embywebsocket
	ProxyPassReverse /embywebsocket ws://localhost:5300/embywebsocket
	ProxyPass / http://localhost:5300/
	ProxyPassReverse / http://localhost:5300/
	SSLCertificateFile /opt/tv/cert/tv.home.crt
	SSLCertificateKeyFile /opt/tv/cert/tv.home.key
	ErrorLog ${APACHE_LOG_DIR}/tv/ssl-error.log
	CustomLog ${APACHE_LOG_DIR}/tv/ssl-access.log combined
</VirtualHost>

@thayesembythis is my current Apache config file. It's acting as a reverse proxy for my docker container and enabling TLS.

thayesemby
Posted

@bryandeagle Thanks! I'll give that a shot and report back with a success or failure (with VirtualHost setup if failed).

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...