refinedev/refine · warning
No resource is found. navigation to ${fallbackTo}.
Error message
No resource is found. navigation to ${fallbackTo}. What it means
Warned by `NavigateToResource` in @refinedev/remix-router when the target resource (from `toResource`/`meta` resolution) cannot be found in the resource list and a `fallbackTo` prop is provided. The component then navigates to `fallbackTo` with replace so the user isn't stranded on a dead route. It signals a resource-definition or naming mismatch rather than a crash.
Source
Thrown at packages/remix-router/src/navigate-to-resource.ts:38
const toResource = resource || resources.find((r) => r.list);
React.useEffect(() => {
if (toResource) {
if (!ran.current) {
const path = getToPath({
resource: toResource,
action: "list",
meta,
});
if (path) {
navigate(path, { replace: true });
}
ran.current = true;
}
} else if (fallbackTo) {
console.warn(`No resource is found. navigation to ${fallbackTo}.`);
navigate(fallbackTo, { replace: true });
ran.current = true;
}
}, [toResource, meta, navigate, getToPath]);
return null;
};
View on GitHub (pinned to 779d52a20e)
Solutions
- Ensure the resource name in `toResource` exactly matches a name in the `resources` array of <Refine>
- Give the resource a `list` route or `meta` so a path can be resolved, or point `toResource` at a resource that has one
- Keep `fallbackTo` pointing at a guaranteed-valid route (e.g. dashboard) as a safety net
Example fix
// before
<Refine resources={[{ name: 'blog-posts', list: '/blog-posts' }]} />
// index route
<NavigateToResource toResource="posts" fallbackTo="/dashboard" />
// after
<NavigateToResource toResource="blog-posts" fallbackTo="/dashboard" /> Defensive patterns
Strategy: validation
Validate before calling
const names = resources.map((r) => r.name);
if (!names.includes('posts')) console.warn('NavigateToResource target missing from resources'); Type guard
const resourceExists = (name: string) => Boolean(resources.find((r) => r.name === name && (r.list || r.meta)));
Prevention
- Centralize resource names as constants shared by <Refine> and NavigateToResource
- Always set fallbackTo to a route that is guaranteed to render
When it happens
Trigger: Rendering <NavigateToResource toResource="posts" /> (or default) where "posts" is not in the <Refine resources> list (different name, undefined, or resource has no list route and no meta to resolve one), while `fallbackTo` is set.
Common situations: Renaming a resource but forgetting the index-page redirect; typo in toResource; resource whose list action was removed; auth-conditional resource registration.
Related errors
- No resource is found. navigation to ${fallbackTo}.
- No resource is found. navigation to ${fallbackTo}.
- No resource and "fallbackTo" is found. No navigation will be
- Invalid action type
- useGetLocale cannot be called without i18n provider being de
AI-assisted analysis of refinedev/refine@779d52a20e (2026-08-27).
Data as JSON: /api/errors/198ffb783abc1867.
Report an issue: GitHub.