Navigator operation with context that does not include a Navigator

Navigator operation requested with a context that does not include a Navigator.

Quick Answer

The BuildContext used for navigation does not have a Navigator ancestor in the widget tree.

Why This Happens

In Flutter, Navigator.of(context) looks up the widget tree for a Navigator. If the context belongs to a widget at or above the Navigator (like the MaterialApp itself), no Navigator is found. You need to use a context from a widget below the MaterialApp in the tree.

The Problem

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: ElevatedButton(
        onPressed: () {
          Navigator.of(context).push(...); // Wrong context!
        },
        child: Text('Go'),
      ),
    );
  }
}

The Fix

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: () {
        Navigator.of(context).push(...); // Correct context
      },
      child: Text('Go'),
    );
  }
}

Step-by-Step Fix

  1. 1

    Identify the error

    Look at the error message: Navigator operation requested with a context that does not include a Navigator. The context is above the Navigator.

  2. 2

    Find the cause

    Check if you are using the BuildContext from the same widget that creates the MaterialApp, rather than a child widget's context.

  3. 3

    Apply the fix

    Extract the navigation code into a separate child widget so its context is below MaterialApp where the Navigator exists.

Got the actual stack trace?

Paste it into our free AI explainer to get the cause and the fix for your specific case — no signup, nothing to install.

Explain my error

Bugsly catches this automatically

Bugsly's AI analyzes this error pattern in real-time, explains what went wrong in plain English, and suggests the exact fix — before your users even report it.

Try Bugsly free