{"record":{"id":"fa31a30353fa086e","repo":"AvaloniaUI/Avalonia","slug":"visual-already-has-a-parent","errorCode":null,"errorMessage":"Visual already has a parent","messagePattern":"Visual already has a parent","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"src/Avalonia.Base/Rendering/Composition/VisualCollection.cs","lineNumber":79,"sourceCode":"\n        partial void OnRemoved(CompositionVisual item)\n        {\n            item.Parent = null;\n            RemoveHitTestChild(item);\n        }\n\n        partial void OnBeforeClear()\n        {\n            foreach (var i in this)\n                i.Parent = null;\n        }\n\n        partial void OnClear() => ClearHitTestChildren();\n\n        partial void OnBeforeAdded(CompositionVisual item)\n        {\n            if (item.Parent != null)\n                throw new InvalidOperationException(\"Visual already has a parent\");\n            item.Parent = _owner;\n        }\n\n        private void AddHitTestChild(CompositionVisual item)\n        {\n            if (_owner is CompositionContainerVisual container)\n                container.AddHitTestChild(item);\n        }\n\n        private void RemoveHitTestChild(CompositionVisual item)\n        {\n            if (_owner is CompositionContainerVisual container)\n                container.RemoveHitTestChild(item);\n        }\n\n        private void ClearHitTestChildren()\n        {\n            if (_owner is CompositionContainerVisual container)","sourceCodeStart":61,"sourceCodeEnd":97,"githubUrl":"https://github.com/AvaloniaUI/Avalonia/blob/11c542726898ae954a1ef668c65ec79ec92ab17d/src/Avalonia.Base/Rendering/Composition/VisualCollection.cs#L61-L97","documentation":"Error \"Visual already has a parent\" thrown in AvaloniaUI/Avalonia.","triggerScenarios":"Raised when adding a CompositionVisual to a VisualCollection while it already belongs to another parent collection. Defend by removing the visual from its current parent before re-parenting, and by tracking ownership in one place.","commonSituations":"See trigger scenarios.","solutions":["Remove the visual from its current parent visual collection before adding it to a new one.","Create a new CompositionVisual instead of re-parenting an already attached one."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"11c542726898ae954a1ef668c65ec79ec92ab17d","analyzedAt":"2026-08-13T11:57:40.261Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}