On 26th September 2019 at 17:50 CEST / 11:50 EST, our engineers identified an issue which caused issues on websites that have the Hotjar Tracking Code installed.
What effect did this issue have on my site?
The issue may have occurred on websites using a Promise polyfill and which used the Promise functionality in their code base. One common library doing so is the zone.js (https://github.com/angular/angular/tree/master/packages/zone.js) library sometimes used by Angular based sites. Sites which did not use any polyfill were not affected.
How long did this issue last?
We deployed the initial change at 13:00 CET. After identifying the cause, our engineers rolled back the code changes by 19:00 CET.
Why did this issue occur?
Our engineers have been working to reduce the size and load time of the Hotjar Tracking Code for visitors. To ensure our script still worked correctly for all IE11 users, our engineers added a Polyfill for Promises into our codebase (a polyfill is code which implements a feature on web browsers that do not support the feature). Unfortunately, the newly added polyfill interfered with sites that used their own polyfill and may have caused errors and some cases, affected the functionality on some sites.
What effect does this issue have on my data?
This issue did not affect data stored in Hotjar.
What are you doing to prevent this happening again?
Having completed the post-mortem, we are now working on the following actions to ensure this does not happen again:
- We are changing how we bundle our Tracking Code. Specifically, we are making some code changes to ensure the global namespace is never negatively affected.
- We are also looking at longer-term changes to improve our ability to gradually roll out and test the Tracking Code to minimise the impact of any issues in the future.