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
- Ensure you have created a new build after installing
expo-observe. Metrics are only collected from builds that include the library. - Check that you are viewing the correct project in the EAS dashboard.
- If testing in development, ensure
enableInDebugis set totruein 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:
- You are calling
AppMetrics.markInteractive()after your splash screen is hidden. - The call is actually being executed (add a
console.logto 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
- npx expo install expo-observe- npm uninstall expo-eas-observeIf you previously installed expo-eas-client as a separate dependency, you can remove it:
- npm uninstall expo-eas-client2
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:
- eas build