Skip to main content
Glama
troubleshooting.md2.29 kB
--- title: Troubleshooting description: Fixing common issues with Expo Router setup. --- ## Missing files or source maps in React Native DevTools This can happen if your Chrome DevTools has exclusions within its ignore list. To fix the issue, use [React Native DevTools](https://reactnative.dev/docs/react-native-devtools): 1. Start the React Native DevTools by pressing <kbd>j</kbd> from the development server running in the terminal window 2. Open **Settings** by clicking the gear icon 3. Under **Extensions**, click **Restore defaults and reload** 4. Open **Settings** again, and go to **Ignore List** tab 5. Uncheck any exclusions for `/node_modules/` ## `EXPO_ROUTER_APP_ROOT` not defined If `process.env.EXPO_ROUTER_APP_ROOT` is not defined you'll see the following error: This can happen when the Babel plugin `expo-router/babel` is not used in the project **babel.config.js**. You can try clearing the cache with: Alternatively, you can circumvent this issue by creating an **index.js** file in the root of your project with the following contents: ```jsx index.js // Must be exported or Fast Refresh won't update the context const ctx = require.context('./app'); return ; } registerRootComponent(App); ``` Then, update your app's main entry point in **package.json**: ```json package.json { "main": "index.js" /* @hide ... */ /* @end */ } ``` > Do not use this to change the root directory (**app**) as it won't account for usage in any other places. ## `require.context` not enabled This can happen when using a custom version of `@expo/metro-config` that does not enable context modules. Expo Router requires the project **metro.config.js** to use `expo-router/metro` as the default configuration. Delete the **metro.config.js**, or extend `expo/metro-config`. See [Customizing metro](/guides/customizing-metro/) for more information. ## Missing back button If you set up a modal or another screen that is expected to have a back button, then you'll need to add [`unstable_settings`](/router/advanced/router-settings/) to the route's layout to ensure the initial route is configured. Initial routes are somewhat unique to mobile apps and fit awkwardly in the system &mdash; improvements pending. ```tsx app/_layout.tsx initialRouteName: 'index', }; ```

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jaksm/expo-docs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server