bevyengine/bevy · error

no `ReflectComponent` registration found for `{}`

Error message

no `ReflectComponent` registration found for `{}`

What it means

Thrown by apply_or_insert_field_mapped when reflecting a bundle field onto an entity: the field's TypeId is a known component in the World, but the TypeRegistry has no ReflectComponent type data for it, so reflection cannot construct or apply it.

Source

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

            entity,
            field,
            registry,
            mapper,
            relationship_hook_mode,
        );
    } 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. Derive Reflect on the component and register it with app.register_type::<T>()
  2. Ensure the registry passed to the reflection call is the same one the app populates (e.g. AppTypeRegistry), not a fresh TypeRegistry::new()
  3. If the type is a bundle rather than a component, register ReflectBundle data for it instead
Defensive patterns

Strategy: validation

When it happens

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