bevyengine/bevy · error

no `ReflectBundle` registration found for `{}`

Error message

no `ReflectBundle` registration found for `{}`

What it means

Thrown by apply_or_insert_field_mapped when a reflected field is neither a component registered in the World nor has ReflectBundle type data in the TypeRegistry, so reflection has no way to apply or insert it.

Source

Thrown at crates/bevy_ecs/src/reflect/bundle.rs:296

        );
    } else if let Some(reflect_bundle) = registry.get_type_data::<ReflectBundle>(type_id) {
        reflect_bundle.apply_or_insert_mapped(
            entity,
            field,
            registry,
            mapper,
            relationship_hook_mode,
        );
    } else {
        let is_component = entity.world().components().get_id(type_id).is_some();

        if is_component {
            panic!(
                "no `ReflectComponent` registration found for `{}`",
                field.reflect_type_path(),
            );
        } else {
            panic!(
                "no `ReflectBundle` registration found for `{}`",
                field.reflect_type_path(),
            )
        }
    }
}

View on GitHub (pinned to 396ca72708)

Solutions

  1. Register the type with app.register_type::<T>() and derive Reflect on it
  2. If it is a bundle, ensure it derives Reflect (which provides ReflectBundle data) and is registered
  3. Verify the correct TypeRegistry is being passed to the reflective apply/insert call
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/bevy_ecs/src/reflect/bundle.rs:296 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/a6fa8558b0bf06bf. Report an issue: GitHub.