bevyengine/bevy · error

DiagnosticsOverlayHeader has been tempered with. Parent was

Error message

DiagnosticsOverlayHeader has been tempered with. Parent was not a DiagnosticsOverlay.

What it means

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.

Source

Thrown at crates/bevy_dev_tools/src/diagnostics_overlay.rs:439

                    palettes::tailwind::GRAY_600
                        .with_alpha(BACKGROUND_COLOR_ALPHA)
                        .into()
                ),
            )
        ],
    ));
}

fn drag_by_header(
    mut event: On<PointerDrag>,
    mut diagnostics_overlays: Query<&mut Node, With<DiagnosticsOverlay>>,
    diagnostics_overlay_headers: Query<&ChildOf, With<DiagnosticsOverlayHeader>>,
) {
    let entity = event.entity;
    if let Ok(child_of) = diagnostics_overlay_headers.get(entity) {
        event.propagate(false);
        let Ok(mut node) = diagnostics_overlays.get_mut(child_of.get()) else {
            panic!("DiagnosticsOverlayHeader has been tempered with. Parent was not a DiagnosticsOverlay.");
        };
        let delta = event.delta;
        let Val::Px(top) = &mut node.top else {
            panic!(
                "DiagnosticsOverlay has been tempered with. Node must have `top` using `Val::Px`."
            );
        };
        *top += delta.y;
        let Val::Px(left) = &mut node.left else {
            panic!(
                "DiagnosticsOverlay has been tempered with. Node must have `left` using `Val::Px`."
            );
        };
        *left += delta.x;
    }
}

fn collapse_on_click_to_header(

View on GitHub (pinned to 396ca72708)

Solutions

  1. Do not re-parent or despawn the overlay's internal entities
  2. Recreate the overlay through the plugin if hierarchy changes are needed
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at crates/bevy_dev_tools/src/diagnostics_overlay.rs:439 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of bevyengine/bevy@396ca72708 (2026-08-20). Data as JSON: /api/errors/b3e50936af596a0c. Report an issue: GitHub.