# Upgrade a Dependency and Fix Breakage in Expo with Atlas in 2026

> Atlas helps Expo developers upgrade major dependencies and fix compile and `jest-expo` test failures by directly using the project's real toolchain.

In 2026, Atlas empowers Expo developers to efficiently upgrade major dependencies and resolve resulting breakage by directly interacting with your project's `npx expo install` package manager, `jest-expo` test runner, and `prettier` formatter. This terminal-native AI agent automates the tedious process of identifying and fixing breaking changes, ensuring your Expo app remains stable and up-to-date with minimal manual intervention.

## Key takeaways

- Atlas uses `npx expo install` to manage dependency upgrades, respecting Expo SDK pinning.
- `webfetch` provides real release notes, guiding Atlas's fixes for Expo breaking changes.
- Atlas fixes compile and `jest-expo` test failures by reading actual output and using `lsp` for precise edits.
- Every change in your Expo project, from `app.json` to `app/` code, requires your explicit approval via unified diffs.
- Atlas can format changes with `prettier` and manage git commits for Expo projects.

## How does Atlas upgrade Expo dependencies and fix breaking changes?

Atlas streamlines major dependency upgrades in Expo projects by orchestrating the `npx expo install` command and then systematically addressing compile and test failures. This process, refined over 2026, ensures that your application's dependencies are updated while maintaining compatibility with your current Expo SDK.

When an Expo developer initiates a dependency upgrade, Atlas first executes `npx expo install <package-name>@latest` via its `bash` tool. This command ensures that the package manager, which pins versions to your SDK release, handles the update correctly. Atlas captures the full output of this operation, saving it to a file if it exceeds terminal limits, allowing for comprehensive review. Following the upgrade, Atlas leverages `webfetch` to retrieve the library's release notes and changelog. This crucial step provides the agent with the actual breaking changes, enabling it to make informed decisions when modifying code rather than guessing. Atlas then proceeds to build or typecheck the Expo project using `bash`, reading the real compiler output to enumerate all new errors. This approach ensures that Atlas addresses actual breakage reported by your Expo toolchain, rather than predicting potential issues.

## How does Atlas fix compile and `jest-expo` test failures?

Atlas addresses compile and `jest-expo` test failures in Expo projects by iteratively fixing each error identified by the compiler or test runner. Using its `edit` tool, Atlas can inspect new signatures and apply necessary code modifications, often resolving 10 to 20 errors in a single pass.

After an Expo dependency upgrade, Atlas systematically tackles each reported compile error. It uses its `edit` tool, integrated with `lsp` (Language Server Protocol) capabilities, to navigate directly to the definition of affected functions or types within the upgraded package. This allows Atlas to inspect new signatures and understand the required changes. For instance, if a component in `app/` or an `expo-router` route needs an updated prop, Atlas will modify the call site. Once compile errors are resolved, Atlas then runs `jest-expo` tests using `bash`. Any test failures are similarly analyzed, with Atlas using `edit` to adjust test files or application logic until all tests pass. Throughout this process, Atlas computes a unified diff for every file edit, presenting it for approval before writing, ensuring the developer maintains full control over the changes. This iterative cycle of fixing and re-running ensures a clean and stable Expo project.

## How does Atlas ensure safety and review during Expo upgrades?

Atlas prioritizes safety and developer review during Expo dependency upgrades by implementing several permission-gated steps and providing clear diffs. Before any command runs, Atlas asks for permission, and every file edit is presented as a unified diff for approval, ensuring you have 100% control over changes.

Atlas integrates multiple layers of safety and review into the dependency upgrade workflow for Expo projects. Every Atlas tool call, including `bash` commands for `npx expo install` or `jest-expo`, is permission-gated against allow, ask, and deny rules. This means Atlas will prompt you before executing potentially impactful commands. Before making any modifications to files like `app.json`, `app.config.ts`, or source code in `app/`, Atlas drafts a plan in a read-only plan agent and asks for approval before switching to a build agent. Crucially, for every file edit, Atlas computes a unified diff and surfaces it for your approval. This allows you to review exactly what changes Atlas proposes, such as updates to `expo-router` routes or config plugin configurations, before they are written to disk. Atlas can also read git branches, status, and diffs, and can stage and create commits on your behalf, further streamlining the review and commit process after a successful upgrade. Finally, Atlas can have `prettier` format the diff before presenting it, ensuring code style consistency.

## Steps

1. Ask Atlas to upgrade a specific dependency in your Expo project by running `npx expo install <package-name>@latest` via the `bash` tool.
2. Instruct Atlas to use `webfetch` to retrieve the release notes for the upgraded library, providing context for breaking changes.
3. Have Atlas run `npx expo prebuild` or `npx expo start` (for typechecking) using `bash` to capture compiler errors and enumerate all breakage.
4. Direct Atlas to use its `edit` tool, leveraging `lsp` `goToDefinition`, to fix each compile error in your Expo project, reviewing each unified diff.
5. Ask Atlas to execute `jest-expo` tests via `bash` to identify and fix any new test failures caused by the dependency upgrade.
6. Continue running `bash` for builds and `jest-expo` tests, allowing Atlas to `edit` remaining issues until the project is clean.
7. Review the entire diff of changes, and have Atlas run `prettier` on the diff before final approval.
8. Instruct Atlas to stage and commit the approved changes to your Expo project.

## FAQ

### How does Atlas handle Expo config plugins during a dependency upgrade?

Atlas understands Expo's configuration system, including `app.json` and `app.config.ts`. If a dependency upgrade requires changes to the `plugins` array or other configuration, Atlas will propose these modifications through its `edit` tool, presenting a unified diff for your approval. This ensures that `prebuild` remains reproducible and consistent with your updated dependencies, avoiding manual native project edits.

### Can Atlas upgrade a dependency that requires native module changes in Expo?

Yes, Atlas can manage dependencies that impact native modules in Expo. By leveraging config plugins, Atlas can add native capabilities without manual edits to `ios/` or `android/` directories. If an upgraded dependency necessitates a new config plugin or modifications to an existing one, Atlas will propose these changes, ensuring your EAS builds continue to function correctly and your project remains reproducible.

### How does Atlas ensure the correct version of a package is installed for my Expo SDK?

Atlas uses `npx expo install` as its package manager tool. This command is specifically designed for Expo projects to ensure that installed package versions are compatible and pinned to your current Expo SDK release, preventing common versioning conflicts and maintaining project stability. Atlas captures the full output of this command for review.

### What if Atlas makes a mistake during an Expo dependency upgrade?

Atlas is designed with multiple safety nets. Every tool call is permission-gated, and every file edit is presented as a unified diff for your approval before being written. If you see a proposed change that is incorrect, you can deny it. Additionally, Atlas snapshots file changes as git patches, allowing you to easily roll back any edits if needed, providing complete control over your Expo project.

### Can Atlas fix `jest-expo` test failures automatically?

Yes, Atlas can identify and fix `jest-expo` test failures. After an upgrade, Atlas runs `jest-expo` via `bash`, reads the test output, and uses its `edit` tool to modify application code or test files to resolve the failures. It continues to re-run tests until they pass, ensuring your test suite remains green and your Expo application functions as expected.

### Does Atlas support `expo-router` file routes when fixing code?

Absolutely. Atlas is aware of `expo-router` file routes and the `app/` directory structure. When fixing code, Atlas will navigate and modify files within your `app/` directory, ensuring that `expo-router` routes and their associated components are updated correctly to reflect changes from the upgraded dependency, maintaining your application's navigation structure.

### How does Atlas handle code formatting after an upgrade?

Atlas can integrate with your project's formatter, `prettier`. After making changes to fix breakage, Atlas can run `prettier` on the modified files or the unified diff before presenting it for your approval. This ensures that all code changes adhere to your project's established formatting standards, maintaining code consistency and readability within your Expo project.

### Can Atlas work with local Ollama embeddings for Expo projects?

Yes, Atlas can build its code index with local Ollama embeddings. This means that when Atlas searches and understands your Expo project's codebase, including `app.json`, `app.config.ts`, and `app/` files, your code remains off third-party servers, enhancing privacy and security. This local processing capability is a core feature of Atlas.

---

Canonical HTML: https://runatlas.sh/resources/stacks/upgrade-a-dependency-and-fix-the-breakage-in-expo
Source of truth: aeo_pages row `/resources/stacks/upgrade-a-dependency-and-fix-the-breakage-in-expo` (segment: Stacks) (this file is generated from it, never hand-edited).
Licence: Atlas is proprietary with a free core. It is not open source and there is no public source repository.
