Skip to content

EAS Build (Android): remote prebuild can't read any icon/splash asset while local expo prebuild succeeds #4069

Description

@dylsavtwa1-arch

Summary

EAS Build's remote build servers cannot read any icon/splash-screen asset
file during Android prebuild, for one specific project, while the exact
same files build successfully with a local expo prebuild. This has
apparently been blocking every native build since ~2026-06-14.

Environment

  • Project: bgsa-caddy (slug: bgsa-caddy, owner account: bgsa)
  • Project ID: f5e5ec8a-ceee-4d79-b522-084ff6749062
  • Expo SDK: 54.0.33
  • eas-cli: reproduced on both 20.4.0 (project-pinned) and 21.2.0 (latest)
  • Platform: Android internal-distribution build, from a Windows 11 client

Error

✖ Prebuild failed
Error: [android.dangerous]: withAndroidDangerousBaseMod: ENOENT: no such
file or directory, open './assets/atlas-avatar.png'
    at calculateHash (@expo/image-utils/build/Cache.js:19:76)
    at createCacheKey (@expo/image-utils/build/Cache.js:24:18)
    at generateImageAsync (@expo/image-utils/build/Image.js:227:34)
    at generateIconAsync (@expo/prebuild-config/.../withAndroidIcons.js:360:11)

expo-doctor (which runs immediately before prebuild, in the same
checkout) independently reports the identical files as inaccessible:

Field: Android.adaptiveIcon.foregroundImage - cannot access file at './assets/atlas-avatar.png'.
Field: Splash.image - cannot access file at './assets/splash-icon.png'.
Field: icon - cannot access file at './assets/atlas-avatar.png'.

What we ruled out before concluding this is server-side

  1. Not transient — reproduced identically across 5 separate build attempts.
  2. Not the eas-cli version — same failure on both 20.4.0 and 21.2.0.
  3. Not stale fingerprint caching — same failure with EAS_SKIP_AUTO_FINGERPRINT=1.
  4. Not the specific files — verified atlas-avatar.png is a normal,
    correctly-committed git blob (hash/size match working tree exactly),
    not Git LFS, not gitignored, correct case, valid PNG header
    (2048x2048, 8-bit, no anomalies).
  5. Not a real config/path problem — when we temporarily pointed
    icon/splash.image/adaptiveIcon.foregroundImage at completely
    different
    existing asset files (./assets/images/icon.png,
    ./assets/images/splash-icon.png), the remote build failed on those
    files instead, with the identical error — proving this isn't specific
    to any one file, it's every icon/splash asset reference, for this
    project, on EAS's remote workers only.
  6. Confirmed working locallynpx expo prebuild --no-install --platform android succeeds cleanly on the same commit, same files,
    same machine, no errors.

Build IDs for reference (all reproduce the same failure)

  • 472fe7fa-d7fb-4c76-9d40-a51906eb252a
  • 259ab92e-6ecb-4cab-915b-44a4b19e202b
  • 4ae45895-4d7a-4b33-a06c-792dfd49855e (eas-cli 21.2.0)
  • 8ea2b8a5-9910-4334-a978-d9609f142a0f (fingerprint skip)
  • 7f681871-5c2f-4da3-8fdc-d772b0d79950 (different asset files, same error)

Expected behavior

Icon/splash assets that exist correctly in the git-committed project and
build successfully with local expo prebuild should also resolve
correctly during EAS Build's remote prebuild step.

Question for support

Given local prebuild succeeds but every remote build fails identically
regardless of which asset file is referenced, is there a project-specific
build cache, stale archive, or account-level state on EAS's side for
project f5e5ec8a-ceee-4d79-b522-084ff6749062 that could explain assets
consistently failing to resolve only in the remote build environment?

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