{"record":{"id":"28f9afba5549f946","repo":"stride3d/stride","slug":"value-cannot-be-null-parameter-element-renderermanager","errorCode":null,"errorMessage":"Value cannot be null. (Parameter 'element')","messagePattern":"Value cannot be null\\. \\(Parameter 'element'\\)","errorType":"exception","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"sources/engine/Stride.UI/Renderers/RendererManager.cs","lineNumber":75,"sourceCode":"            }\n\n            return elementRenderer;\n        }\n\n        public void RegisterRendererFactory(Type uiElementType, IElementRendererFactory factory)\n        {\n            if (uiElementType == null) throw new ArgumentNullException(nameof(uiElementType));\n            if (factory == null) throw new ArgumentNullException(nameof(factory));\n\n            if (!typeof(UIElement).GetTypeInfo().IsAssignableFrom(uiElementType.GetTypeInfo()))\n                throw new InvalidOperationException(uiElementType + \" is not a descendant of UIElement.\");\n\n            typesToUserFactories[uiElementType] = factory;\n        }\n\n        public void RegisterRenderer(UIElement element, ElementRenderer renderer)\n        {\n            if (element == null) throw new ArgumentNullException(nameof(element));\n            if (renderer == null) throw new ArgumentNullException(nameof(renderer));\n\n            elementIdToRenderer[element.Id] = renderer;\n        }\n\n        public void Dispose()\n        {\n            foreach (var renderer in elementIdToRenderer.Values)\n            {\n                if (!renderer.IsDisposed)\n                    renderer.Dispose();\n            }\n            elementIdToRenderer.Clear();\n        }\n    }\n}\n","sourceCodeStart":57,"sourceCodeEnd":92,"githubUrl":"https://github.com/stride3d/stride/blob/96fad776d210c221682aac1ccdf4c79dc046fc38/sources/engine/Stride.UI/Renderers/RendererManager.cs#L57-L92","documentation":"Argument-null validation in RendererManager.RegisterRenderer (invoked via RegisterRendererFactory's registration path): the element parameter is null. The renderer registration needs the concrete UIElement instance to associate with the created renderer; a null element cannot be keyed in elementIdToRenderer, so the call is rejected with ArgumentNullException named 'element'.","triggerScenarios":"Thrown at sources/engine/Stride.UI/Renderers/RendererManager.cs:75 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a fully constructed, non-null UIElement instance to RegisterRenderer.","Check the element for null at the call site (e.g. when it comes from a lookup, hit-test or factory that can return null) before registering its renderer.","Delay registration until the element has actually been created rather than registering a placeholder null."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"96fad776d210c221682aac1ccdf4c79dc046fc38","analyzedAt":"2026-09-14T02:59:31.279Z","contentChangedAt":"2026-09-14T02:59:31.279Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}