Hi, I’ve deployed a Panel application that displays and words fine for most users but some users are able to log in (using the standard simple json file based authentication) but see a blank screen like the one attached where the sidebar items and panel Tabulators do not appear. Instead, blank cards are shown. Does anybody know of any reason why this would happen for only some users?
Could you ask them to open their browser console and check for errors? I know not all users are comfortable with that
Yeah this is an end user who doesn’t know how to do that or what to look for. The app is on an AWS EC2 instance and behind an nginx proxy. I’m just wondering, theoretically, how a user could get past the json simple user authentication but then see blank cards for the main app panels. Could it be a websocket issue or a proxy buffer size problem? I’m somewhat shooting in the dark at this point looking for culprits.
This could be a help: Deployment scenarios — Bokeh 3.2.2 Documentation
The things I can think of without more info is
- The user could have an older version of Panel or Bokeh js cached in his browser. The browser console will normally show errors and a hard refresh can solve this.
- In a few cases I’ve seen issues with special or old browsers
For sure you should investigate the clients browser console and the servers logs. Otherwise its just guessing.
Thanks for everyone’s responses, they are much appreciated. I have done some more investigation and I was able to successfully deploy the app to Heroku and launch it on the customer’s network. Despite significant tweaking to the nginx config and Panel command line options it still does not run on my AWS EC2 instance. The only obvious difference between the two is that Heroku uses SSL by default and the EC2 instance currently has no certificates associated with it so it only allows unsecured http connections. But I’m not ready to put the blame entire on lack of SSL, just yet anyway. There appears to be a problem establishing the websocket connection originating with clients on that particular network for some reason. I’m tempted to try putting a certificate on the EC2 instance (if my customer will let me). But I was hoping to first prove that SSL is the most likely culprit by removing the SSL certs from Heroku to force plain http connections. Unfortunately this does not appear to be easy.
Anybody have a good working nginx configuration file using self-signed openssl cert files? I’ve tried everything out there and it just won’t connect successfully. This particular functionality is very poorly documented, despite being a very common deployment scenario. I’ve followed the bokeh docs to a T and no luck.
Turned out to be an SSL issue whereby the customer’s local network was blocking insecure/non-SSL http connections. So if you see this behaviour try using a self-signed SSL certificates and either use FireFox or Safari to accept that cert. If it solves your problem then you can procure “real” certs.