# FullStory: Updated Recording Script Bug

- Impact (vendor’s label): none
- Status: resolved
- Started: 2017-01-17 17:00 UTC · Resolved: 2017-01-17 17:00 UTC · Duration: 0 min
- Updates: 1
- [Vendor status page: https://status.fullstory.com/incidents/j7f3h9t98036](https://status.fullstory.com/incidents/j7f3h9t98036)
- [Company: FullStory](https://rewindex.com/company/fullstory.md)

## Timeline of updates

- **resolved** 2017-01-17 17:00 UTC: Summary In our January 17th, 2017 production update, we shipped a new version of the recording script to production. This version had a bug which could cause some Javascript APIs and events to throw. These errors resulted in an impact to our customer's end users. This issue affected a small subset of our users. Customers and pages that were affected exhbited the following traits: 1. fs.js was installed on the page, 2. recording was disabled, and 3. the initial /rec/page request had to complete before the document was fully parsed. Timeline The bug was manifest from ~10:24 AM EDT when we started our deploy, until ~2:30 PM EDT. - 10:24 AM EDT: Production push started - 1:23 PM EDT: Pushed a fix to address reported errors (input events) - 2:30 PM EDT: Pushed a fix to address a second error that was uncovered with the first fix (history.pushState) Root Cause This error was caused by an unexpected recording script state, triggered by a race condition. The cleanup code in shutdown() didn’t deal properly with this case, and would (a) throw exceptions from input change events, and (b) replace History.push/replaceState with null, breaking that API. Preventative Measures In our analysis of the issue, we found a hole in our test infrastructure that allowed the bug to be released. Our comprehensive set of tests did not catch this issue because it was triggered by a state we didn't cover (as described in 'exhibited traits' above). This confluence of events triggered a shutdown path before the script state was fully initialized. Our existing tests would have caught the error had they simulated this precise race state. One outcome of our post-mortem process is to extend our test infrastructure to be able to simulate these and similar conditions. The added tests will exhaustively cover the possible states that the recording client can get into as well as add additional coverage around all native API and event shims in the presence of these states.

_From the vendor’s published history: only the final update text is available for incidents before Rewindex began polling this page._


---
Canonical: https://rewindex.com/company/fullstory/incidents/j7f3h9t98036 · Markdown: https://rewindex.com/company/fullstory/incidents/j7f3h9t98036.md · JSON: https://rewindex.com/api/v1/companies/fullstory/incidents/j7f3h9t98036 · Generated 2026-10-18T14:26:35.301Z
