[SOLVED] Meteor 2.7.1 Not Working On TV or Fire Stick Browsers

We have an app that several users use in fullscreen mode on Samsung and LG Smart TV browsers or through Amazon Fire Sticks and Tablets.

Previously we ran Meteor 1.10.2 and the app ran well on the above browsers. But now 2.7.1 is broken on these, specifically with an Iron Router no route found error message, which usually happens in development when something else is broken and/or not compiling correctly.

In the Meteor change log I remember reading about dropped browser support for IE9 (or something - couldnā€™t find it upon searching) so Iā€™m wondering if that is causing the problem.

I have specs on the models, software, and browser versions. The LG TV uses webOS TV 5.3.2-2205. I am going to try to see if thereā€™s any emulators or versions that can be downloaded to a computer and tested.

Could be an issue with Blaze. Are you using the latest? If yes, can you give Blaze 2.6.1-rc.1 a try?

1 Like

Weā€™re on Blaze 2.6.0. I will update to 2.6.1-rc.1 and report back.

A few new findings to add:

On the LG Smart TV it uses webOS TV 5.3.2-2205, which on the LG website states they use Chromium 68 as a browser. I went on lambdatest.com and tested the app in Chrome 68 and it indeed breaks with an error:

Uncaught SyntaxError: Unexpected token .modules.js?hash=294f089200f13312bd1358af8ba11d5ee0b6edf3:74577

Hard to get much more out of it than that as itā€™s a minified production app. So I downloaded an old Chromium 68 build to run locally in development and I can see much more errors, including the above one first, but also several with Uncaught ReferenceError: meteorInstall is not defined.

I added blaze@2.6.1-rc.1 to my development project and my local Chromium 68 still breaks with the same errors.

I also tried our Meteor 1.10.2 version in Chromium 68 and it works. So this might be something easily viewable on a test Meteor app.

In other news, more customers have reported the issue. :hot_face:

Did some more browser tests with the 2.7.1 app on lambatest.com:

Chrome

  • Broken on any version before 80

Firefox

  • Broken on any version before 74

Edge

  • Broken on any version before 80 (same as Chrome)

Safari

  • Broken on any version before 12

Internet Explorer

  • Broken on IE 11 (Windows 10)
  • Broken on IE 10 (Windows 8)
  • Broken on IE 9 (Windows 7)

Should I file a bug for this?

I was able to get the Meteor example app tic-toc-toe running in 2.7.1 in both modern Chrome and Chromium 68. So itā€™s probably not a Meteor issue per se. Upon researching, I realize Iā€™ve had issues like this before and itā€™s usually an npm or meteor package causing the issue.

I thought for sure it would be @babel/runtime, jquery, bcrypt, or meteor-node-stubs but I tried updating them all and/or changing them back to the version I ran in 1.10.2 but nothing worked. I even used the versions of those packages that tic-toc-toe used (when applicable) but that didnā€™t work.

Then I saw that my new 2.7.1 was missing es5-shim (I did a lot of package shuffling in the upgrade). I thought for sure that was it. Nope.

BTW, whatā€™s the current status for Meteor 2.7.1 on npm versions of:

  • @babel/runtime
  • bcrypt
  • meteor-node-stubs

In past versions of Meteor updates, these has specific versions they had to be set at.

I may have to start the arduous process of rebuilding the app from a fresh meteor install, adding package by package. :flushed:

Figured it out, yep, bad npm package. We use screenfull for full-screening and their latest version of the package is a pure ESM package which I admittedly donā€™t know much about, but I did read all their info upon updating the package. It sounded like Meteor took care of this, but perhaps the old way of importing it:

import screenfull from 'screenfull';

Needs an update per the ESM rules? At least for old browsers? Anyway, per their instructions, rolling back to the the prior stable version made it all work.

For anyone who wants the know the process for identifying the bad npm package, hereā€™s what I did.

  1. Remove all npm packages from package.js except for the standard ones of a default Meteor project (@babel/runtime, jquery, meteor-node-stubs).
  2. Add only the npm packages needed to build the project. Youā€™ll see lots of errors, but eventually your project will build once all the server npm packages are added. Any client npm packages will error out once loading the app in the browser.
  3. At this point I got lucky and both the modern Chrome and Chromium 68 browsers displayed the same errors (e.g. the missing npm client packages).
  4. At this point itā€™s just adding back the remaining npm packages one by one (or in chunks to go faster) and waiting for the Chromium 68 console to spit out the above mystery breakage.
  5. Voilaā€¦ found the errant package. Rolled back to their safe version.

Lastly, whatā€™s the status on needing bcrypt as an npm package?

2 Likes

The app is still broken in all versions of Internet Explorer. Would be nice to have it at least work in IE11. Is all IE support officially dropped?

Thanks for sharing how you could figure out the root cause of the problem.

About IE, Meteor should continue working on it. I believe @zodern was able to fix the issue on this PR.
We should add it soon in the next beta version.

2 Likes