Troubleshooting Expo Observe

Edit page

Solutions for common Expo Observe issues.


For the complete documentation index, see llms.txt. Use this file to discover all available pages.

Common issues

Metrics not appearing in the dashboard

  1. Ensure you have created a new build after installing expo-observe. Metrics are only collected from builds that include the library.
  2. Check that you are viewing the correct project in the EAS dashboard.
  3. If testing in development, ensure enableInDebug is set to true in your app config. See Enable metrics in development.

Time to first render not showing

Verify that your root layout is wrapped with AppMetricsRoot:

import { AppMetricsRoot } from 'expo-observe'; function RootLayout() { return (/* your layout */); } export default AppMetricsRoot.wrap(RootLayout);

Time to interactive not showing

This metric requires manual instrumentation. Verify that:

  1. You are calling AppMetrics.markInteractive() after your splash screen is hidden.
  2. The call is actually being executed (add a console.log to verify).
Migrating from expo-eas-observe

If you were part of the private preview and previously used expo-eas-observe, follow these steps to migrate to expo-observe.

1

Replace the package

Terminal
npx expo install expo-observe
npm uninstall expo-eas-observe

If you previously installed expo-eas-client as a separate dependency, you can remove it:

Terminal
npm uninstall expo-eas-client

2

Update imports

- import AppMetrics from 'expo-eas-observe'; + import { AppMetrics } from 'expo-observe';

3

Replace manual markFirstRender() with AppMetricsRoot

Instead of calling markFirstRender() manually, wrap your root layout with the AppMetricsRoot HOC. This handles the measurement automatically.

Before:

import { useEffect } from 'react'; import AppMetrics from 'expo-eas-observe'; export default function RootLayout() { useEffect(() => { AppMetrics.markFirstRender(); }, []); return (/* your layout */); }

After:

import { AppMetricsRoot } from 'expo-observe'; function RootLayout() { return (/* your layout */); } export default AppMetricsRoot.wrap(RootLayout);

4

Create a new build

After completing the migration, create a new build of your app:

Terminal
eas build