Nx "Unable to resolve executor" in project.json - Fix in CI
By Kaveh Alemi·Latchkey
A target’s executor in project.json points at a plugin that Nx cannot load - the plugin package is not installed, the executor name is wrong, or the install was pruned in CI.
What this error means
Running a target fails with "Unable to resolve <pkg>:<executor>" or "Cannot find module". The project and target exist, but Nx cannot load the code that runs the task. Deterministic for the given install.
npx turbo run build --dry-run=json | head -40
npx nx graph --file=graph.json
pnpm -r list --depth -1 2>/dev/null || yarn workspaces list
Common causes
Executor plugin not installed
The target references @nx/webpack:webpack (or similar) but the plugin package is missing from node_modules - not a dependency, or omitted by a production-only install in CI.
Wrong executor identifier
A typo in the package:executor string, or a renamed executor after a plugin upgrade, fails to resolve even when the plugin is present.
Version skew between Nx and the plugin
A plugin version incompatible with the installed Nx core may not expose the executor Nx expects.
How to fix it
Install the plugin that provides the executor
Add the plugin as a dependency so its executor resolves at runtime.
Align plugin versions with the Nx core version (they release together).
Avoid --omit=dev installs that drop build-time plugins in CI.
Run nx run <project>:<target> --verbose to see the resolution stack.
How to prevent it
Declare every executor plugin as a dependency, not an implicit one.
Install dev dependencies in CI when targets need build-time plugins.
Upgrade Nx core and its plugins together to avoid executor drift.
Frequently asked questions
What causes Nx "Unable to resolve executor" in project.json?
There are 3 common causes: executor plugin not installed, wrong executor identifier, and version skew between nx and the plugin. The target references @nx/webpack:webpack (or similar) but the plugin package is missing from node_modules - not a dependency, or omitted by a production-only install in CI.
How do I fix Nx "Unable to resolve executor" in project.json?
There are 3 fixes depending on which cause you have: install the plugin that provides the executor, correct the executor reference, and keep nx and plugins on matching versions. Work through them in order, since the first is the most common.
What does Nx "Unable to resolve executor" in project.json actually mean?
Running a target fails with "Unable to resolve <pkg>:<executor>" or "Cannot find module".
How do I stop Nx "Unable to resolve executor" in project.json happening again?
Declare every executor plugin as a dependency, not an implicit one. The prevention section lists 3 changes that keep it from recurring.