React 19.2 dev mode breaks MST: "creation of the observable instance must be done on the initializing phase"
Bug report
- [x] I've checked documentation and searched for existing issues and discussions
- [x] I've made sure my project is based on the latest MST version
This is the same issue that was raised at the bottom of the conversation on #2277
Also added to the discussion here: https://github.com/facebook/react/issues/35126
Describe the expected behavior
Not to error with React 19.2
Describe the observed behavior
React 19.2 introduced logComponentRender which calls addObjectDiffToProperties to deeply traverse component props/state for dev logging
This traversal accesses MST proxy objects and triggers:
- Lazy observable initialization at the wrong lifecycle phase
- Access to detached nodes after array/object replacement (e.g., in our basket model we do self.menu_items = cast(data.menu_items)) - the original node becomes detached and then React inspects it throwing warnings about trying to read or write to an object that is no longer part of a state tree.
Works fine in React < 19.2, breaks in 19.2.x Only affects development mode Stack trace shows the issue originates from react-dom-client.development.js → addObjectDiffToProperties → MST proxy getters
We could potentially work around this by eg converting models to snapshots before rendering but that is a big refactor for us as we use models extensively throughout our online ordering platform.
I’m not sure this is an MST issue per-se, but maybe you could add to the React conversation if you don’t feel it’s something you should fix because I’m definitely not the only person experiencing this.
Happy to help trying to debug/test but it only happens in a few places in our code and I’ve not been able to simplify it enough to get a working sandbox example. Will continue trying
I can’t reproduce this with a minimal install in vite. Still investigating to see if I can add something meaningful in here. About to try a minimal install of next (our codebase is running the latest Next 15) to see if that surfaces the issue
Also can’t reproduce this with a minimal install in next 15, using the same versions as in my main project. Frustrating!
The stack trace shows the exact sequence:
- Warnings first - React's addObjectDiffToProperties traverses each property of the detached BasketMenuItem (id, menu_item_id, display_name, modifiers, quantity, price) - these trigger MST's warnError (the setLivelinessChecking('warn') is working)
- Fatal error on price - When it hits price (a nested Price model), accessing it on the detached node triggers lazy initialization via ModelType.value → ObjectNode.get → which then throws the uncaught "creation of the observable instance must be done on the initializing phase” error
The nested price model definition:
export const Price = types
.model('Price', {
currency_code: types.enumeration([‘GBP’, ‘EUR’]),
value: types.number
})
.views((self) => ({
get zero(): IPrice {
return Price.create({ ... }); // Views that create new instances
}
}));
Stack trace (Everything is warnings until the uncaught error at the end):
installHook.js:1 Error: [mobx-state-tree] You are trying to read or write to an object that is no longer part of a state tree. (Object type: 'BasketMenuItem', Path upon death: '/order/basket/menu_items/0', Subpath: 'id', Action: ''). Either detach nodes first, or don't use objects after removing / replacing them in the tree.
at warnError (mobx-state-tree.module.js:4414:18)
at ObjectNode.value (mobx-state-tree.module.js:1997:25)
at ObjectNode.value (mobx-state-tree.module.js:2102:18)
at ObservableValue.dehanceValue (mobx.esm.js:1463:19)
at ObservableValue.get (mobx.esm.js:1520:17)
at ObservableObjectAdministration.getObservablePropValue_ (mobx.esm.js:5018:34)
at Object.get [as id] (mobx.esm.js:5517:26)
at ObservableObjectAdministration.get_ (mobx.esm.js:5071:24)
at Object.get (mobx.esm.js:3639:27)
at addObjectDiffToProperties (react-dom-client.development.js:3969:25)
at addObjectDiffToProperties (react-dom-client.development.js:4017:23)
at logComponentRender (react-dom-client.development.js:4131:22)
at commitPassiveMountOnFiber (react-dom-client.development.js:15470:13)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
installHook.js:1 Error: [mobx-state-tree] You are trying to read or write to an object that is no longer part of a state tree. (Object type: 'BasketMenuItem', Path upon death: '/order/basket/menu_items/0', Subpath: 'menu_item_id', Action: ''). Either detach nodes first, or don't use objects after removing / replacing them in the tree.
at warnError (mobx-state-tree.module.js:4414:18)
at ObjectNode.value (mobx-state-tree.module.js:1997:25)
at ObjectNode.value (mobx-state-tree.module.js:2102:18)
at ObservableValue.dehanceValue (mobx.esm.js:1463:19)
at ObservableValue.get (mobx.esm.js:1520:17)
at ObservableObjectAdministration.getObservablePropValue_ (mobx.esm.js:5018:34)
at Object.get [as menu_item_id] (mobx.esm.js:5517:26)
at ObservableObjectAdministration.get_ (mobx.esm.js:5071:24)
at Object.get (mobx.esm.js:3639:27)
at addObjectDiffToProperties (react-dom-client.development.js:3969:25)
at addObjectDiffToProperties (react-dom-client.development.js:4017:23)
at logComponentRender (react-dom-client.development.js:4131:22)
at commitPassiveMountOnFiber (react-dom-client.development.js:15470:13)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
installHook.js:1 Error: [mobx-state-tree] You are trying to read or write to an object that is no longer part of a state tree. (Object type: 'BasketMenuItem', Path upon death: '/order/basket/menu_items/0', Subpath: 'display_name', Action: ''). Either detach nodes first, or don't use objects after removing / replacing them in the tree.
at warnError (mobx-state-tree.module.js:4414:18)
at ObjectNode.value (mobx-state-tree.module.js:1997:25)
at ObjectNode.value (mobx-state-tree.module.js:2102:18)
at ObservableValue.dehanceValue (mobx.esm.js:1463:19)
at ObservableValue.get (mobx.esm.js:1520:17)
at ObservableObjectAdministration.getObservablePropValue_ (mobx.esm.js:5018:34)
at Object.get [as display_name] (mobx.esm.js:5517:26)
at ObservableObjectAdministration.get_ (mobx.esm.js:5071:24)
at Object.get (mobx.esm.js:3639:27)
at addObjectDiffToProperties (react-dom-client.development.js:3969:25)
at addObjectDiffToProperties (react-dom-client.development.js:4017:23)
at logComponentRender (react-dom-client.development.js:4131:22)
at commitPassiveMountOnFiber (react-dom-client.development.js:15470:13)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
installHook.js:1 Error: [mobx-state-tree] You are trying to read or write to an object that is no longer part of a state tree. (Object type: 'BasketMenuItem', Path upon death: '/order/basket/menu_items/0', Subpath: 'modifiers', Action: ''). Either detach nodes first, or don't use objects after removing / replacing them in the tree.
at warnError (mobx-state-tree.module.js:4414:18)
at ObjectNode.value (mobx-state-tree.module.js:1997:25)
at ObjectNode.value (mobx-state-tree.module.js:2102:18)
at ObservableValue.dehanceValue (mobx.esm.js:1463:19)
at ObservableValue.get (mobx.esm.js:1520:17)
at ObservableObjectAdministration.getObservablePropValue_ (mobx.esm.js:5018:34)
at Object.get [as modifiers] (mobx.esm.js:5517:26)
at ObservableObjectAdministration.get_ (mobx.esm.js:5071:24)
at Object.get (mobx.esm.js:3639:27)
at addObjectDiffToProperties (react-dom-client.development.js:3969:25)
at addObjectDiffToProperties (react-dom-client.development.js:4017:23)
at logComponentRender (react-dom-client.development.js:4131:22)
at commitPassiveMountOnFiber (react-dom-client.development.js:15470:13)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
installHook.js:1 Error: [mobx-state-tree] You are trying to read or write to an object that is no longer part of a state tree. (Object type: 'BasketMenuItem', Path upon death: '/order/basket/menu_items/0', Subpath: 'quantity', Action: ''). Either detach nodes first, or don't use objects after removing / replacing them in the tree.
at warnError (mobx-state-tree.module.js:4414:18)
at ObjectNode.value (mobx-state-tree.module.js:1997:25)
at ObjectNode.value (mobx-state-tree.module.js:2102:18)
at ObservableValue.dehanceValue (mobx.esm.js:1463:19)
at ObservableValue.get (mobx.esm.js:1520:17)
at ObservableObjectAdministration.getObservablePropValue_ (mobx.esm.js:5018:34)
at Object.get [as quantity] (mobx.esm.js:5517:26)
at ObservableObjectAdministration.get_ (mobx.esm.js:5071:24)
at Object.get (mobx.esm.js:3639:27)
at addObjectDiffToProperties (react-dom-client.development.js:3969:25)
at addObjectDiffToProperties (react-dom-client.development.js:4017:23)
at logComponentRender (react-dom-client.development.js:4131:22)
at commitPassiveMountOnFiber (react-dom-client.development.js:15470:13)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
installHook.js:1 Error: [mobx-state-tree] You are trying to read or write to an object that is no longer part of a state tree. (Object type: 'BasketMenuItem', Path upon death: '/order/basket/menu_items/0', Subpath: 'price', Action: ''). Either detach nodes first, or don't use objects after removing / replacing them in the tree.
at warnError (mobx-state-tree.module.js:4414:18)
at ObjectNode.value (mobx-state-tree.module.js:1997:25)
at ObjectNode.value (mobx-state-tree.module.js:2102:18)
at ObservableValue.dehanceValue (mobx.esm.js:1463:19)
at ObservableValue.get (mobx.esm.js:1520:17)
at ObservableObjectAdministration.getObservablePropValue_ (mobx.esm.js:5018:34)
at Object.get [as price] (mobx.esm.js:5517:26)
at ObservableObjectAdministration.get_ (mobx.esm.js:5071:24)
at Object.get (mobx.esm.js:3639:27)
at addObjectDiffToProperties (react-dom-client.development.js:3969:25)
at addObjectDiffToProperties (react-dom-client.development.js:4017:23)
at logComponentRender (react-dom-client.development.js:4131:22)
at commitPassiveMountOnFiber (react-dom-client.development.js:15470:13)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
mobx.esm.js:1340 Uncaught Error: [mobx-state-tree] assertion failed: the creation of the observable instance must be done on the initializing phase
at new MstError (mobx-state-tree.module.js:4031:23)
at ObjectNode.value (mobx-state-tree.module.js:1749:27)
at executeAction (mobx.esm.js:1337:15)
at ObjectNode.value (mobx.esm.js:1322:12)
at ObjectNode.value (mobx-state-tree.module.js:1735:22)
at ModelType.value (mobx-state-tree.module.js:2643:18)
at ObjectNode.get (mobx-state-tree.module.js:1203:30)
at ObjectNode.value (mobx-state-tree.module.js:2105:48)
at ObservableValue.dehanceValue (mobx.esm.js:1463:19)
at ObservableValue.get (mobx.esm.js:1520:17)
at ObservableObjectAdministration.getObservablePropValue_ (mobx.esm.js:5018:34)
at Object.get [as price] (mobx.esm.js:5517:26)
at ObservableObjectAdministration.get_ (mobx.esm.js:5071:24)
at Object.get (mobx.esm.js:3639:27)
at addObjectDiffToProperties (react-dom-client.development.js:3969:25)
at addObjectDiffToProperties (react-dom-client.development.js:4017:23)
at logComponentRender (react-dom-client.development.js:4131:22)
at commitPassiveMountOnFiber (react-dom-client.development.js:15470:13)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15719:11)
at recursivelyTraversePassiveMountEffects (react-dom-client.development.js:15440:11)
at commitPassiveMountOnFiber (react-dom-client.development.js:15477:11)
Arg, yeah this is problematic. We definitely need to figure something out. I'll chime in on the React discussion because ideally they'd at least give us a way to opt out. If we have to solve it ourselves, I suspect it will require a large effort. Thanks for the report!
If you have time to keep working on a reproducer, that would be helpful.