bevyengine/bevy · error
expected owned value
Error message
expected owned value
What it means
Panic in Return::unwrap_owned: the Return holds a Ref or Mut rather than an Owned value, so unwrap_owned cannot take ownership. Match on the Return variant or use unwrap_ref/unwrap_mut as appropriate.
Source
Thrown at crates/bevy_reflect/src/func/return_type.rs:42
}
/// Returns `true` if the return value is an [`Owned`](Self::Owned) unit (`()`) type.
pub fn is_unit(&self) -> bool {
match self {
Return::Owned(val) => val.represents::<()>(),
_ => false,
}
}
/// Unwraps the return value as an owned value.
///
/// # Panics
///
/// Panics if the return value is not [`Self::Owned`].
pub fn unwrap_owned(self) -> Box<dyn PartialReflect> {
match self {
Return::Owned(value) => value,
_ => panic!("expected owned value"),
}
}
/// Unwraps the return value as a reference to a value.
///
/// # Panics
///
/// Panics if the return value is not [`Self::Ref`].
pub fn unwrap_ref(self) -> &'a dyn PartialReflect {
match self {
Return::Ref(value) => value,
_ => panic!("expected reference value"),
}
}
/// Unwraps the return value as a mutable reference to a value.
///
/// # PanicsView on GitHub (pinned to 396ca72708)
Solutions
- Check Return::is_owned() before unwrapping
- Use unwrap_ref/unwrap_mut as appropriate for the actual variant
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at crates/bevy_reflect/src/func/return_type.rs:42 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/bef130a75ca10e02.
Report an issue: GitHub.