DioxusLabs/dioxus · error · syn::Error
Catch-all route segments must be the last segment in a route
Error message
Catch-all route segments must be the last segment in a route. The route segments after the catch-all segment will never be matched.
What it means
Error "Catch-all route segments must be the last segment in a route. The route segments after the catch-all segment will never be matched." thrown in DioxusLabs/dioxus.
Source
Thrown at packages/router-macro/src/segment.rs:205
let field = fields.clone().find(|(name, _)| **name == ident);
let ty = if let Some(field) = field {
field.1.clone()
} else {
return Err(syn::Error::new(
route_span,
format!("Could not find a field with the name '{}'", ident,),
));
};
if spread {
route_segments.push(RouteSegment::CatchAll(
Ident::new(&ident, Span::call_site()),
ty,
));
if iterator.next().is_some() {
return Err(syn::Error::new(
route_span,
"Catch-all route segments must be the last segment in a route. The route segments after the catch-all segment will never be matched.",
));
} else {
break;
}
} else {
route_segments.push(RouteSegment::Dynamic(
Ident::new(&ident, Span::call_site()),
ty,
));
}
} else {
route_segments.push(RouteSegment::Static(segment.to_string()));
}
}
Ok((route_segments, query, hash))View on GitHub (pinned to 393d190a80)
When it happens
Trigger: Thrown at packages/router-macro/src/segment.rs:205 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/2a5f28b10a12c950.
Report an issue: GitHub.