"Maximum call stack exceeded" with circular references
Author: joshkelCreated Mar 11, 2024Updated Oct 31, 2025
Labelsbug
Bug Report
Starting with Immer 10.0.4, if Immer is given an object that uses symbols for circular references, it generates a "Maximum call stack exceeded" error.
Link to repro
To Reproduce
Pass an object with pre-existing symbol circular references to Immer 10.0.4. (Circular references that are added within an Immer recipe do not cause problems.)
Observed behavior
"Maximum call stack exceeded"
Expected behavior
Our application uses symbols to create child-to-parent relationships. Since symbols are skipped by many JavaScript routines (e.g., JSON.stringify, Immer prior to 10.0.4), we had been able to do this without error.
Environment
- Immer version: 10.0.4
- I filed this report against the latest version of Immer
Source: immerjs/immer