{"record":{"id":"b3e50936af596a0c","repo":"bevyengine/bevy","slug":"diagnosticsoverlayheader-has-been-tempered-with-p","errorCode":null,"errorMessage":"DiagnosticsOverlayHeader has been tempered with. Parent was not a DiagnosticsOverlay.","messagePattern":"DiagnosticsOverlayHeader has been tempered with\\. Parent was not a DiagnosticsOverlay\\.","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/bevy_dev_tools/src/diagnostics_overlay.rs","lineNumber":439,"sourceCode":"                    palettes::tailwind::GRAY_600\n                        .with_alpha(BACKGROUND_COLOR_ALPHA)\n                        .into()\n                ),\n            )\n        ],\n    ));\n}\n\nfn drag_by_header(\n    mut event: On<PointerDrag>,\n    mut diagnostics_overlays: Query<&mut Node, With<DiagnosticsOverlay>>,\n    diagnostics_overlay_headers: Query<&ChildOf, With<DiagnosticsOverlayHeader>>,\n) {\n    let entity = event.entity;\n    if let Ok(child_of) = diagnostics_overlay_headers.get(entity) {\n        event.propagate(false);\n        let Ok(mut node) = diagnostics_overlays.get_mut(child_of.get()) else {\n            panic!(\"DiagnosticsOverlayHeader has been tempered with. Parent was not a DiagnosticsOverlay.\");\n        };\n        let delta = event.delta;\n        let Val::Px(top) = &mut node.top else {\n            panic!(\n                \"DiagnosticsOverlay has been tempered with. Node must have `top` using `Val::Px`.\"\n            );\n        };\n        *top += delta.y;\n        let Val::Px(left) = &mut node.left else {\n            panic!(\n                \"DiagnosticsOverlay has been tempered with. Node must have `left` using `Val::Px`.\"\n            );\n        };\n        *left += delta.x;\n    }\n}\n\nfn collapse_on_click_to_header(","sourceCodeStart":421,"sourceCodeEnd":457,"githubUrl":"https://github.com/bevyengine/bevy/blob/396ca727080776bd313bb892423b7d94e03b81b4/crates/bevy_dev_tools/src/diagnostics_overlay.rs#L421-L457","documentation":"Panic in drag_by_header: a DiagnosticsOverlayHeader entity's parent lacks the DiagnosticsOverlay component, meaning the header/overlay hierarchy was altered by user code after the plugin spawned it.","triggerScenarios":"Thrown at crates/bevy_dev_tools/src/diagnostics_overlay.rs:439 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Do not re-parent or despawn the overlay's internal entities","Recreate the overlay through the plugin if hierarchy changes are needed"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"396ca727080776bd313bb892423b7d94e03b81b4","analyzedAt":"2026-08-20T16:12:39.808Z","contentChangedAt":"2026-08-20T16:12:39.808Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}