bevyengine/bevy · error

Summary ticks are only supported for components with table s

Error message

Summary ticks are only supported for components with table storage.

What it means

Compile-time error from the Component derive: #[component(summary_tick)] (or a related summary-tick feature) was requested on a component whose storage is not table (sparse-set storage), but summary ticks are only implemented for table storage.

Source

Thrown at crates/bevy_ecs/macro_logic/src/component.rs:170

                }
            } else if attr.path().is_ident(RELATIONSHIP) {
                let relationship = attr.parse_args::<Relationship>()?;
                attrs.relationship = Some(relationship);
            } else if attr.path().is_ident(RELATIONSHIP_TARGET) {
                let relationship_target = attr.parse_args::<RelationshipTarget>()?;
                attrs.relationship_target = Some(relationship_target);
            }
        }

        if attrs.relationship_target.is_some() && attrs.clone_behavior.is_some() {
            return Err(syn::Error::new(
                attrs.clone_behavior.span(),
                "A Relationship Target already has its own clone behavior, please remove `clone_behavior = ...`",
            ));
        }

        if attrs.summary_tick && matches!(attrs.storage, Some(StorageTy::SparseSet)) {
            return Err(syn::Error::new(
                ast.span(),
                "Summary ticks are only supported for components with table storage.",
            ));
        }

        Ok(attrs)
    }

    /// Generates a new `Component` trait implementation from this specification.
    ///
    /// Note that this will add Send + Sync + 'static to the where clause
    pub fn impl_component(
        self,
        ast: &mut DeriveInput,
        bevy_ecs: &Path,
        default_storage: StorageTy,
    ) -> Result<TokenStream> {
        // We want to raise a compile time error when the generic lifetimes

View on GitHub (pinned to 396ca72708)

Solutions

  1. Remove the summary_tick attribute
  2. Change the component to table storage (remove storage = "sparse_set"])
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/bevy_ecs/macro_logic/src/component.rs:170 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/61aa718b7f007c76. Report an issue: GitHub.