{"record":{"id":"c839cbbc20bc187a","repo":"DioxusLabs/dioxus","slug":"not-a-valid-node","errorCode":null,"errorMessage":"not a valid node","messagePattern":"not a valid node","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/web/src/dom.rs","lineNumber":129,"sourceCode":"            interpreter,\n            #[cfg(feature = \"mounted\")]\n            runtime,\n            #[cfg(feature = \"mounted\")]\n            queued_mounted_events: Default::default(),\n            #[cfg(feature = \"mounted\")]\n            current_writing_id: ElementId::from_raw(0),\n            #[cfg(feature = \"hydrate\")]\n            suspense_hydration_ids: Default::default(),\n        }\n    }\n}\n\nfn walk_event_for_id(event: &web_sys::Event) -> Option<(ElementId, web_sys::Element)> {\n    let target = event\n        .target()\n        .expect(\"missing target\")\n        .dyn_into::<web_sys::Node>()\n        .expect(\"not a valid node\");\n\n    walk_element_for_id(&target)\n}\n\nfn walk_element_for_id(target: &Node) -> Option<(ElementId, web_sys::Element)> {\n    let mut current_target_element = target.dyn_ref::<web_sys::Element>().cloned();\n\n    loop {\n        match (\n            current_target_element\n                .as_ref()\n                .and_then(|el| el.get_attribute(\"data-dioxus-id\").map(|f| f.parse())),\n            current_target_element,\n        ) {\n            // This node is an element, and has a dioxus id, so we can stop walking\n            (Some(Ok(id)), Some(target)) => return Some((ElementId::from_raw(id), target)),\n\n            // Walk the tree upwards until we actually find an event target","sourceCodeStart":111,"sourceCodeEnd":147,"githubUrl":"https://github.com/DioxusLabs/dioxus/blob/24f6a829df0dfa203961a98ea4cae21c2ff27e28/packages/web/src/dom.rs#L111-L147","documentation":"After downcasting the event target to a Node, `walk_event_for_id` `expect`s the cast to succeed. This panic fires when an event target is not a DOM Node — indicating an unexpected event type reaching the web renderer's event-to-ElementId resolution, an internal invariant violation.","triggerScenarios":"Thrown at packages/web/src/dom.rs:129 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the value being mounted or queried is a valid DOM Node; do not pass detached or wrong-typed JS values to the DOM API."],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"24f6a829df0dfa203961a98ea4cae21c2ff27e28","analyzedAt":"2026-08-23T07:10:14.078Z","contentChangedAt":"2026-08-23T07:10:14.078Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}