Emoji broke the site in 2.4.2


#1

This is a known error from emoji-mart that hit me, that was supposed to be fixed. See below. The net result is that only the admin is available, and no Web client can connect – breaking the whole app for an emoji issue sounds :thinking: :cold_sweat: :grimacing: :scream:

I removed the file and re-ran RAILS_ENV=production bundle exec rails assets:precompile without effect. I could not find a way in the admin to not use emojis…


Error
columnNumber: 235156
fileName: "https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js"
lineNumber: 1
message: "Module build failed: Error: /home/mastodon/live/app/javascript/mastodon/features/emoji/emoji_compressed.js: Cannot find module 'emoji-mart/dist/utils/data'\n    at Function.Module._resolveFilename (module.js:476:15)\n    at Function.Module._load (module.js:424:25)\n    at Module.require (module.js:504:17)\n    at require (internal/module.js:20:19)\n    at Object.<anonymous> (/home/mastodon/live/app/javascript/mastodon/features/emoji/emoji_compressed.js:18:17)\n    at Module._compile (module.js:577:32)\n    at requireFromString (/home/mastodon/live/node_modules/require-from-string/index.js:28:4)\n    at getReplacement (/home/mastodon/live/node_modules/babel-plugin-preval/dist/get-replacement.js:18:13)\n    at PluginPass.Program (/home/mastodon/live/node_modules/babel-plugin-preval/dist/index.js:39:27)\n    at newFn (/home/mastodon/live/node_modules/babel-traverse/lib/visitors.js:276:21)\n    at NodePath._call (/home/mastodon/live/node_modules/babel-traverse/lib/path/context.js:76:18)\n    at NodePath.call (/home/mastodon/live/node_modules/babel-traverse/lib/path/context.js:48:17)\n    at NodePath.visit (/home/mastodon/live/node_modules/babel-traverse/lib/path/context.js:105:12)\n    at TraversalContext.visitQueue (/home/mastodon/live/node_modules/babel-traverse/lib/context.js:150:16)\n    at TraversalContext.visitSingle (/home/mastodon/live/node_modules/babel-traverse/lib/context.js:108:19)\n    at TraversalContext.visit (/home/mastodon/live/node_modules/babel-traverse/lib/context.js:192:19)\n    at Function.traverse.node (/home/mastodon/live/node_modules/babel-traverse/lib/index.js:114:17)\n    at traverse (/home/mastodon/live/node_modules/babel-traverse/lib/index.js:79:12)\n    at File.transform (/home/mastodon/live/node_modules/babel-core/lib/transformation/file/index.js:548:35)\n    at /home/mastodon/live/node_modules/babel-core/lib/transformation/pipeline.js:50:19\n    at File.wrap (/home/mastodon/live/node_modules/babel-core/lib/transformation/file/index.js:564:16)\n    at Pipeline.transform (/home/mastodon/live/node_modules/babel-core/lib/transformation/pipeline.js:47:17)\n    at transpile (/home/mastodon/live/node_modules/babel-loader/lib/index.js:50:20)\n    at /home/mastodon/live/node_modules/babel-loader/lib/fs-cache.js:118:18\n    at ReadFileContext.callback (/home/mastodon/live/node_modules/babel-loader/lib/fs-cache.js:31:21)\n    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:367:13)"
stack: "@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:235156\ne@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:96\n@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:214732\ne@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:96\n@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:131057\n@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:130983\ne@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:96\n@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:435048\ne@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:96\n@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:71745\ne@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:96\n@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:80308\ne@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:96\n@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:432229\ne@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:96\n@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:428008\ne@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:96\n@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:170568\ne@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:96\n[676]@https://ps.s10y.eu/packs/application-c58684a6d68d25737388.js:1:8931\ne@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:96\n[675]@https://ps.s10y.eu/packs/application-c58684a6d68d25737388.js:1:8671\ne@https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js:1:96\n[674]/<@https://ps.s10y.eu/packs/application-c58684a6d68d25737388.js:1:8099\n"
__proto__: Object { … }
application.js:6:2
[674]/<
application.js:6:2
Source map error: request failed with status 404
Resource URL: https://ps.s10y.eu/packs/common-3241e24bcca018d517b5.js
Source Map URL: common-3241e24bcca018d517b5.js.map

#2

I found the way out by removing the failing files listed in the JavaScript console, then recompiling the assets. I had to retry a couple of times, probably because the first time I did not remove the manifest.json and manifest.json.gz files.

Here is the winning moves:

mastodon@s10y:~/live$ rm public/packs/locale_en-de97a11e5759324de8cd.js* public/packs/application-c58684a6d68d25737388.js* public/packs/manifest.json*
mastodon@s10y:~/live$ RAILS_ENV=production bundle exec rails assets:precompile