DioxusLabs/dioxus · error

static child checked

Error message

static child checked

What it means

The merged static/dynamic child iterator compares peeked heads and `expect`s the static child to still be present when taking it. This panic fires only if the iterator's internal bookkeeping is wrong (taking an already-consumed head) — an internal bug, not user error.

Source

Thrown at packages/core/src/diff/template.rs:279

        let next_dynamic = dynamic_children.next();
        Self {
            static_children,
            dynamic_children,
            next_static,
            next_dynamic,
        }
    }

    fn next(&mut self) -> Option<VNodeChild<'a>> {
        let take_static = match (self.next_static, self.next_dynamic) {
            (Some(static_child), Some(dynamic_child)) => static_child.key() <= dynamic_child.key(),
            (Some(_), None) => true,
            (None, Some(_)) => false,
            (None, None) => return None,
        };

        if take_static {
            let child = self.next_static.take().expect("static child checked");
            self.next_static = self.static_children.next();
            Some(child.child)
        } else {
            let child = self.next_dynamic.take().expect("dynamic child checked");
            self.next_dynamic = self.dynamic_children.next();
            Some(child.child)
        }
    }
}

#[derive(Clone, Copy)]
struct PositionedChild<'a> {
    position: usize,
    order: usize,
    child: VNodeChild<'a>,
}

impl<'a> PositionedChild<'a> {

View on GitHub (pinned to 24f6a829df)

Solutions

  1. This is an internal invariant about static children. Report it with a minimal reproduction to the Dioxus issue tracker.
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at packages/core/src/diff/template.rs:279 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of DioxusLabs/dioxus@24f6a829df (2026-08-23). Data as JSON: /api/errors/4cf5e6d10b3d3490. Report an issue: GitHub.