{"record":{"id":"69d1387eb0e43fe3","repo":"gatsbyjs/gatsby","slug":"node-mutation-detection-is-enabled-remember-to-di","errorCode":null,"errorMessage":"Node mutation detection is enabled. Remember to disable it after you are finished with diagnostic as it will cause build performance degradation.","messagePattern":"Node mutation detection is enabled\\. Remember to disable it after you are finished with diagnostic as it will cause build performance degradation\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/gatsby/src/utils/detect-node-mutations.ts","lineNumber":133,"sourceCode":"\n    if (typeof value === `object` && value !== null) {\n      return memoizedProxy(value, genericProxy)\n    }\n\n    return value\n  }\n\n  return {\n    get,\n    set,\n  }\n}\n\nlet shouldWrapNodesInProxies = !!process.env.GATSBY_DETECT_NODE_MUTATIONS\nexport function enableNodeMutationsDetection(): void {\n  shouldWrapNodesInProxies = true\n\n  reporter.warn(\n    `Node mutation detection is enabled. Remember to disable it after you are finished with diagnostic as it will cause build performance degradation.`\n  )\n}\n\nexport function wrapNode<T extends IGatsbyNode | undefined>(node: T): T {\n  if (node && shouldWrapNodesInProxies) {\n    return memoizedProxy(node, nodeProxy)\n  } else {\n    return node\n  }\n}\n\nexport function wrapNodes<T extends Array<IGatsbyNode> | undefined>(\n  nodes: T\n): T {\n  if (nodes && shouldWrapNodesInProxies && nodes.length > 0) {\n    return nodes.map(node => memoizedProxy(node, nodeProxy)) as T\n  } else {","sourceCodeStart":115,"sourceCodeEnd":151,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/e85d62f1779e353eaac1753211629a26d123e26c/packages/gatsby/src/utils/detect-node-mutations.ts#L115-L151","documentation":"Advisory warning emitted by enableNodeMutationsDetection (called from initialize when GATSBY_DETECT_NODE_MUTATIONS is set): node proxies are now active, which adds per-access overhead. It fires once at startup purely to remind the user the diagnostic flag degrades build performance and should be removed afterwards.","triggerScenarios":"Thrown at packages/gatsby/src/utils/detect-node-mutations.ts:133 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Unset GATSBY_DETECT_NODE_MUTATIONS when done diagnosing node mutations","Run it only in short diagnostic builds, not production builds"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e85d62f1779e353eaac1753211629a26d123e26c","analyzedAt":"2026-08-26T17:50:09.662Z","contentChangedAt":"2026-08-26T17:50:09.662Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}