Skip to content

bevy_ui_widgets feature does not include complete dependencies #24369

@robojeb

Description

@robojeb

Bevy version and features

  • Version "0.19.0-rc.1"

What you did

I accidentally created a reduced project which contained the 2d feature and the bevy_feathers, forgetting to add ui.

[dependencies.bevy]
version = "0.19.0-rc.1"
default-features = false

features = [
    "2d",
    "bevy_feathers"
]

And a simple default App

use bevy::prelude::*

fn main() {
    App::new().add_plugins(DefaultPlugins).run();
}

What went wrong

I expected the application to launch properly, but instead I get multiple missing resource failures (Log below with the added "debug" feature):

2026-05-20T16:55:22.626943Z  INFO bevy_diagnostic::system_information_diagnostics_plugin::internal: SystemInfo { os: "Linux (Arch Linux rolling)", kernel: "7.0.5-arch1-1", cpu: "AMD Ryzen 5 3600 6-Core Processor", core_count: "6", memory: "31.3 GiB" }
2026-05-20T16:55:22.674100Z  INFO bevy_render::renderer: AdapterInfo { name: "AMD Radeon RX 7900 XT (RADV NAVI31)", vendor: 4098, device: 29772, device_type: DiscreteGpu, device_pci_bus_id: "0000:2f:00.0", driver: "radv", driver_info: "Mesa 26.0.6-arch1.1", backend: Vulkan, subgroup_min_size: 32, subgroup_max_size: 64, transient_saves_memory: false }
2026-05-20T16:55:23.174714Z  INFO gilrs_core::platform::platform::gamepad: Gamepad /dev/input/event6 (Keychron Keychron V1 System Control) connected.
2026-05-20T16:55:23.174863Z  WARN gilrs::gamepad: No mapping found for UUID 03000000-3434-0000-1003-000011010000
	Default mapping will be used.
2026-05-20T16:55:23.306424Z  INFO bevy_winit::system: Creating new window bsn_sbx (63v0)
2026-05-20T16:55:23.318725Z  INFO bevy_input::gamepad: Gamepad 290v0 connected.

thread 'Compute Task Pool (2)' (188826) panicked at /home/jeb/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bevy_ecs-0.19.0-rc.1/src/error/handler.rs:130:1:
Encountered an error in system `bevy_ui_widgets::text_input::listen_for_ime_input_when_text_input_focused`: Parameter `Res<'_, InputFocus>` failed validation: Resource does not exist
If this is an expected state, wrap the parameter in `Option<T>` and handle `None` when it happens, or wrap the parameter in `If<T>` to skip the system when it happens.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'Compute Task Pool (3)' (188827) panicked at /home/jeb/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bevy_ecs-0.19.0-rc.1/src/error/handler.rs:130:1:
Encountered an error in system `bevy_ui_widgets::text_input::on_ime_input`: Parameter `Res<'_, InputFocus>` failed validation: Resource does not exist
If this is an expected state, wrap the parameter in `Option<T>` and handle `None` when it happens, or wrap the parameter in `If<T>` to skip the system when it happens.

Encountered a panic in system `bevy_ui_widgets::text_input::listen_for_ime_input_when_text_input_focused`!
Encountered a panic in system `bevy_ui_widgets::text_input::on_ime_input`!
Encountered a panic in system `bevy_app::main_schedule::Main::run_main`!


VALIDATION ERROR - The VkDevice dispatch handle was not found and Validation will crash. If you are using exit() you need to make sure to not call any Vulkan calls in your atexit() function as the layer static memory will be destroyed prior to atexit()

fish: Job 1, 'cargo run' terminated by signal SIGABRT (Abort)

I do understand it is a little silly to try to use bevy_feathers without ui but I would expect that the feature at least include its required dependencies even if it wasn't fully functional (e.g. didn't have a renderer).

Additional information

It looks like bevy_ui_widgets depends on bevy_input_focus and bevy_ui and so should probably list ui_api as a dependency.
The failure with bevy_feathers is because that depends on bevy_ui_widgets.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-UIGraphical user interfaces, styles, layouts, and widgetsC-BugAn unexpected or incorrect behaviorS-Ready-For-ImplementationThis issue is ready for an implementation PR. Go for it!

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Needs SME Triage

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions