DioxusLabs/dioxus · error · syn::Error

Attempted to exclude a layout that does not exist

Error message

Attempted to exclude a layout that does not exist

What it means

Error "Attempted to exclude a layout that does not exist" thrown in DioxusLabs/dioxus.

Source

Thrown at packages/router-macro/src/lib.rs:386

                        for mut segment in iter {
                            segment.children.push(current);
                            current = segment;
                        }

                        children.push(current);
                    }
                } else if attr.path().is_ident("layout") {
                    let parser = |input: ParseStream| {
                        let bang: Option<Token![!]> = input.parse().ok();
                        let exclude = bang.is_some();
                        Ok((exclude, Layout::parse(input, nest_stack.clone())?))
                    };
                    let (exclude, layout): (bool, Layout) = attr.parse_args_with(parser)?;

                    if exclude {
                        let Some(layout_index) = layouts.iter().position(|l| l.comp == layout.comp)
                        else {
                            return Err(syn::Error::new(
                                Span::call_site(),
                                "Attempted to exclude a layout that does not exist",
                            ));
                        };
                        excluded.push(LayoutId(layout_index));
                    } else {
                        let layout_index = layouts.len();
                        layouts.push(layout);
                        layout_stack.push(LayoutId(layout_index));
                    }
                } else if attr.path().is_ident("end_layout") {
                    layout_stack.pop();
                } else if attr.path().is_ident("redirect") {
                    let parser = |input: ParseStream| {
                        Redirect::parse(input, nest_stack.clone(), endpoints.len())
                    };
                    let redirect = attr.parse_args_with(parser)?;
                    endpoints.push(RouteEndpoint::Redirect(redirect));

View on GitHub (pinned to 393d190a80)

When it happens

Trigger: Thrown at packages/router-macro/src/lib.rs:386 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of DioxusLabs/dioxus@393d190a80 (2026-08-16). Data as JSON: /api/errors/c734183cc83f0c12. Report an issue: GitHub.