Skip to content

eas-cli 18.5.0 regression: workflow:run fails to parse app.config.ts without node_modules #3574

@henrikra

Description

@henrikra

Summary

eas workflow:run started failing on eas-cli 18.5.0 (released April 2, 2026) when node_modules are not installed on the GitHub Actions runner. The same workflow works on 18.4.0.

The EAS CLI now tries to parse app.config.ts locally before dispatching the remote workflow. Without node_modules, this fails with either:

  • Unexpected token ')' (fallback @expo/config can't parse the TS syntax)
  • Failed to resolve plugin for module "expo-asset" (if Node is set up but deps aren't installed)

This is a regression because workflow:run only triggers a remote EAS workflow — there's no reason it should need local node_modules to read the config.

To Reproduce

  1. Use a GitHub Actions workflow that runs eas workflow:run without npm install:
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: expo/expo-github-action@v8
        with:
          eas-version: latest  # resolves to 18.5.0+
          token: ${{ secrets.EXPO_TOKEN }}

      - run: eas workflow:run .eas/workflows/my-deploy.yml --wait --non-interactive
  1. The step fails with:
Failed to read the app config from the project using "npx expo config" command: npx expo config --json exited with non-zero code: 1.
Falling back to the version of "@expo/config" shipped with the EAS CLI.
Error reading Expo config at /home/runner/work/my-project/my-project/app.config.ts:

Unexpected token ')'
    Error: workflow:run command failed.

Expected behavior

eas workflow:run should not require local node_modules — it only needs to dispatch a remote workflow.

Workarounds

  • Pin eas-cli to 18.4.0: eas-version: 18.4.0 (confirmed working)
  • Add npm ci before the EAS step (confirmed working, but adds ~30s to the workflow)

Bisected versions

eas-cli version Result
18.4.0 Works without node_modules
18.5.0 Fails without node_modules

Environment

  • GitHub Actions runner: ubuntu-latest (Ubuntu 24.04)
  • Node: 20.x (from the runner default)
  • Expo SDK: 52
  • app.config.ts uses dynamic config with plugins (expo-asset, expo-splash-screen, etc.)

Related issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions