{"record":{"id":"dc0d4d42edf4a8ee","repo":"emberjs/ember.js","slug":"cannot-remove-a-node-unless-it-is-part-of-an-array","errorCode":null,"errorMessage":"Cannot remove a node unless it is part of an array","messagePattern":"Cannot remove a node unless it is part of an array","errorType":"exception","errorClass":"TraversalError","httpStatus":null,"severity":"error","filePath":"packages/@glimmer/syntax/lib/traversal/traverse.ts","lineNumber":230,"sourceCode":") {\n  for (let i = 0; i < array.length; i++) {\n    let node = unwrap(array[i]);\n    let path = new WalkerPath(node, parent, parentKey);\n    let result = visitNode(visitor, path);\n    if (result !== undefined) {\n      i += spliceArray(array, i, result) - 1;\n    }\n  }\n}\n\nfunction assignKey<N extends ASTv1.Node, K extends VisitorKey<N>>(\n  node: N,\n  key: K,\n  value: ASTv1.Node,\n  result: N[K] | [N[K]] | null\n) {\n  if (result === null) {\n    throw cannotRemoveNode(value, node, key);\n  } else if (Array.isArray(result)) {\n    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n    if (result.length === 1) {\n      set(node, key, result[0]);\n    } else {\n      if (result.length === 0) {\n        throw cannotRemoveNode(value, node, key);\n      } else {\n        throw cannotReplaceNode(value, node, key);\n      }\n    }\n  } else {\n    set(node, key, result);\n  }\n}\n\nfunction spliceArray(array: ASTv1.Node[], index: number, result: ASTv1.Node | ASTv1.Node[] | null) {\n  if (result === null) {","sourceCodeStart":212,"sourceCodeEnd":248,"githubUrl":"https://github.com/emberjs/ember.js/blob/26f97246a8bf2e28edf26ac3093da2e86c04ffc5/packages/@glimmer/syntax/lib/traversal/traverse.ts#L212-L248","documentation":"Error \"Cannot remove a node unless it is part of an array\" thrown in emberjs/ember.js.","triggerScenarios":"Thrown at packages/@glimmer/syntax/lib/traversal/traverse.ts:230 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"26f97246a8bf2e28edf26ac3093da2e86c04ffc5","analyzedAt":"2026-09-01T05:01:28.182Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}