diff --git a/packages/toolkit/src/immutableStateInvariantMiddleware.ts b/packages/toolkit/src/immutableStateInvariantMiddleware.ts index 69f42b67b6..f03456f212 100644 --- a/packages/toolkit/src/immutableStateInvariantMiddleware.ts +++ b/packages/toolkit/src/immutableStateInvariantMiddleware.ts @@ -92,11 +92,13 @@ function trackProperties( isImmutable: IsImmutableFunc, ignorePaths: IgnorePaths = [], obj: Record, - path: string = '' + path: string = '', + checkedObjects: Set> = new Set() ) { const tracked: Partial = { value: obj } - if (!isImmutable(obj)) { + if (!isImmutable(obj) && !checkedObjects.has(obj)) { + checkedObjects.add(obj); tracked.children = {} for (const key in obj) {