didFailPagelessRoute method

void didFailPagelessRoute({
  1. required RouteNodeReadable routeNodeReadable,
  2. required Route route,
  3. required Object error,
  4. required RouteNode? routeNode,
})

Called when a pageless route creation attempt fails.

This occurs when:

  • Route type is not supported by compatibility layer (e.g., PopupMenuRoute)
  • Route cannot be converted to page-based navigation
  • Observer blocked processing via willPushPagelessRoute returning false

The route will fall back to native Navigator behavior (pageless mode).

Note: This is called from YxNavigator after catching UnsupportedRouteException, just before falling back to native Navigator.

Parameters

  • routeNodeReadable - The RouteNodeReadable instance that provides access to the parent node of the created route node
  • route - The route that failed to be converted
  • error - The UnsupportedRouteException that occurred
  • routeNode - Always null - route was never successfully created

Example

@override
void didFailPagelessRoute({
  required RouteNodeReadable routeNodeReadable,
  required Route<dynamic> route,
  required Object error,
  required RouteNode? routeNode,
}) {
  // Log unsupported routes
  logger.warning(
    'Route fallback to native Navigator: ${route.runtimeType}',
    error: error,
  );

  // Track in analytics
  analytics.trackEvent('unsupported_route', {
    'route_type': route.runtimeType.toString(),
    'route_name': route.settings.name,
  });
}

Implementation

void didFailPagelessRoute({
  required RouteNodeReadable routeNodeReadable,
  required Route<dynamic> route,
  required Object error,
  required RouteNode? routeNode,
}) {}