intercom / intercom-rails

The easiest way to install Intercom in a Rails app.
https://developers.intercom.io/reference
MIT License
281 stars 108 forks source link

Firefox is triggering NS_ERROR_NOT_INITIALIZED causing intercom to stop working between page turbo page loads #349

Open edwinthinks opened 5 months ago

edwinthinks commented 5 months ago

Hey there!

My team has been running into some problems with the gem that appears to only affect Firefox users. This appears to be related to turbo as I can "fix" the issue by disabling turbo which causes pages to fully reload on page visits.

Version info

Expected behavior

Firefox users can continue to chat with support via the intercom beacon between page visits. No NS_ERROR_NOT_INITIALIZED are triggered

Actual behavior

Firefox users open chat and when they navigate to another page the widget stays open but is unresponsive.

The error shared in logs occurs multiple times flooding our error monitoring tool with 10+ errors.

Steps to reproduce

(I'am not 100% sure how to reproduce, apologies!)

  1. Visit website using Firefox
  2. Click on any turbo link

Logs

NS_ERROR_NOT_INITIALIZED: [frame.526e8892.js:2](https://js.intercomcdn.com/frame.526e8892.js)
[Honeybadger] could not send error report: no API key has been configured 
Object { toString: toString(), name: "NS_ERROR_NOT_INITIALIZED", message: "NS_ERROR_NOT_INITIALIZED: ", result: 3253927937, filename: "https://js.intercomcdn.com/frame.526e8892.js", lineNumber: 2, columnNumber: 0, data: null, stack: "88266/u/<@https://js.intercomcdn.com/frame.526e8892.js:2:87046\nx@https://js.intercomcdn.com/vendor.6ec585f6.js:2:368826\n./node_modules/@honeybadger-io/js/dist/browser/honeybadger.js/</</Honeybadger.prototype.__wrap/func.___hb@http://localhost:5000/packs/js/application_v5-4af461bc52820fcae97a.js:13526:29\nEventListener.handleEvent*./node_modules/@honeybadger-io/js/dist/browser/honeybadger.js/</</default_1/load/</</<@http://localhost:5000/packs/js/application_v5-4af461bc52820fcae97a.js:12789:33\ng@https://js.intercomcdn.com/frame.526e8892.js:2:792495\n66318/m/<@https://js.intercomcdn.com/app~tooltips.68819611.js:2:228024\nm@https://js.intercomcdn.com/app~tooltips.68819611.js:2:227994\nd@https://js.intercomcdn.com/app~tooltips.68819611.js:2:227642\nvalue@https://js.intercomcdn.com/app~tooltips.68819611.js:2:230603\nhu@https://js.intercomcdn.com/vendor.6ec585f6.js:2:462932\njs@https://js.intercomcdn.com/vendor.6ec585f6.js:2:480660\n60053/t.unstable_runWithPriority@https://js.intercomcdn.com/vendor.6ec585f6.js:2:583706\nXo@https://js.intercomcdn.com/vendor.6ec585f6.js:2:424617\nRs@https://js.intercomcdn.com/vendor.6ec585f6.js:2:477321\ngs@https://js.intercomcdn.com/vendor.6ec585f6.js:2:473466\nps@https://js.intercomcdn.com/vendor.6ec585f6.js:2:470010\ntc@https://js.intercomcdn.com/vendor.6ec585f6.js:2:491274\n64448/uc/<@https://js.intercomcdn.com/vendor.6ec585f6.js:2:492485\n_s@https://js.intercomcdn.com/vendor.6ec585f6.js:2:473616\nuc@https://js.intercomcdn.com/vendor.6ec585f6.js:2:492470\n64448/t.render@https://js.intercomcdn.com/vendor.6ec585f6.js:2:495470\nuk@https://js.intercomcdn.com/app.0036ccfb.js:2:730601\n63147/t/</t/<@https://js.intercomcdn.com/frame.526e8892.js:2:1089511\nf@https://js.intercomcdn.com/frame.526e8892.js:2:1082141\n63147/$l/I/<@https://js.intercomcdn.com/frame.526e8892.js:2:1083489\n63147/$l/O/</<@https://js.intercomcdn.com/frame.526e8892.js:2:1082570\nYl@https://js.intercomcdn.com/frame.526e8892.js:2:1088059\na@https://js.intercomcdn.com/frame.526e8892.js:2:1088265\npromise callback*Yl@https://js.intercomcdn.com/frame.526e8892.js:2:1088130\na@https://js.intercomcdn.com/frame.526e8892.js:2:1088265\n63147/Jl/</<@https://js.intercomcdn.com/frame.526e8892.js:2:1088325\n63147/Jl/<@https://js.intercomcdn.com/frame.526e8892.js:2:1088203\npromise callback*63147/t/<@https://js.intercomcdn.com/frame.526e8892.js:2:1089256\nf@https://js.intercomcdn.com/frame.526e8892.js:2:1082141\n63147/$l/I/<@https://js.intercomcdn.com/frame.526e8892.js:2:1083489\n63147/$l/O/</<@https://js.intercomcdn.com/frame.526e8892.js:2:1082570\nYl@https://js.intercomcdn.com/frame.526e8892.js:2:1088059\na@https://js.intercomcdn.com/frame.526e8892.js:2:1088265\npromise callback*Yl@https://js.intercomcdn.com/frame.526e8892.js:2:1088130\na@https://js.intercomcdn.com/frame.526e8892.js:2:1088265\n63147/Jl/</<@https://js.intercomcdn.com/frame.526e8892.js:2:1088325\n63147/Jl/<@https://js.intercomcdn.com/frame.526e8892.js:2:1088203\n63147/ef@https://js.intercomcdn.com/frame.526e8892.js:2:1089716\nvalue@https://js.intercomcdn.com/frame.526e8892.js:2:1092926\ne@https://js.intercomcdn.com/frame.526e8892.js:2:1100517\nboot@https://js.intercomcdn.com/frame.526e8892.js:2:1100617\n63147/Sf/<@https://js.intercomcdn.com/frame.526e8892.js:2:1104333\n63147@https://js.intercomcdn.com/frame.526e8892.js:2:1110104\ns@https://js.intercomcdn.com/frame.526e8892.js:2:1271266\n52522@https://js.intercomcdn.com/frame.526e8892.js:2:775759\ns@https://js.intercomcdn.com/frame.526e8892.js:2:1271266\nc<@https://js.intercomcdn.com/frame.526e8892.js:2:1277284\ns.O@https://js