bevyengine/bevy · error · ViewportConversionError
pre-computed size of viewport not available
Error message
pre-computed size of viewport not available
What it means
ViewportConversionError::NoViewportSize: the camera's cached viewport size (computed by camera_system) was not available when a world-to-viewport or viewport-to-world conversion was attempted. Happens for a freshly spawned camera before camera_system has run, or when the RenderTarget is misconfigured (missing window, invalid image/texture-view handle).
Source
Thrown at crates/bevy_camera/src/camera.rs:340
sensor_height: 0.01866,
}
}
}
/// Error returned when a conversion between world-space and viewport-space coordinates fails.
///
/// See [`world_to_viewport`][Camera::world_to_viewport] and [`viewport_to_world`][Camera::viewport_to_world].
#[derive(Debug, Eq, PartialEq, Copy, Clone, Error)]
pub enum ViewportConversionError {
/// The pre-computed size of the viewport was not available.
///
/// This may be because the `Camera` was just created and `camera_system` has not been executed
/// yet, or because the [`RenderTarget`] is misconfigured in one of the following ways:
/// - it references the [`PrimaryWindow`](RenderTarget::Window) when there is none,
/// - it references a [`Window`](RenderTarget::Window) entity that doesn't exist or doesn't actually have a `Window` component,
/// - it references an [`Image`](RenderTarget::Image) that doesn't exist (invalid handle),
/// - it references a [`TextureView`](RenderTarget::TextureView) that doesn't exist (invalid handle).
#[error("pre-computed size of viewport not available")]
NoViewportSize,
/// The computed coordinate was beyond the `Camera`'s near plane.
///
/// Only applicable when converting from world-space to viewport-space.
#[error("computed coordinate beyond `Camera`'s near plane")]
PastNearPlane,
/// The computed coordinate was beyond the `Camera`'s far plane.
///
/// Only applicable when converting from world-space to viewport-space.
#[error("computed coordinate beyond `Camera`'s far plane")]
PastFarPlane,
/// The Normalized Device Coordinates could not be computed because the `camera_transform`, the
/// `world_position`, or the projection matrix defined by [`Projection`](super::projection::Projection)
/// contained `NAN` (see [`world_to_ndc`][Camera::world_to_ndc] and [`ndc_to_world`][Camera::ndc_to_world]).
#[error("found NaN while computing NDC")]
InvalidData,
}
View on GitHub (pinned to 396ca72708)
Solutions
- Run the conversion after camera_system has executed (e.g. in a system ordered after it)
- Ensure the camera's RenderTarget references an existing window, image, or texture view
- Check that the camera has a CameraOutput component / is active
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at crates/bevy_camera/src/camera.rs:340 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/8c8318e3e1e2f429.
Report an issue: GitHub.