spawn bun ENOENT

Hi all:

Today I’ve tried to build a iOS version of my app with EAS build, but now on the Install custom tools phase I’m getting this message error spawn bun ENOENT. I’ve google this and notice that expo now support Bun, and on the release notes it says, that it will only use Bun if you have bun.lockb file in your project, which is not my case. Is there any attribute that I can add to my eas.json, so it doesn’t use Bun.

It’s a bare project, and we are using eas to build the artifacts.

Here is the package.json:

{
  "name": "name",
  "version": "1.0.0",
  "description": "ds",
  "scripts": {
    ...
  },
  "engines": {
    "node": ">= 14.15.1 <= 14.19.4"
  },
  "jest": {
    "preset": "jest-expo",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "json"
    ],
    "testMatch": [
      "**/*.(test|spec).(ts|tsx)"
    ],
    "globals": {
      "ts-jest": {
        "babelConfig": true
      }
    }
  },
  "dependencies": {
    "@apollo/client": "3.2.4",
    "@aws-amplify/auth": "^5.3.4",
    "@aws-amplify/cache": "^5.0.30",
    "@aws-amplify/core": "^5.1.13",
    "@aws-amplify/datastore": "^4.2.0",
    "@aws-amplify/storage": "^5.2.4",
    "@aws-sdk/client-rekognition": "^3.12.0",
    "@config-plugins/react-native-branch": "^5.0.0",
    "@expo/react-native-action-sheet": "^3.8.0",
    "@expo/vector-icons": "^13.0.0",
    "@react-native-async-storage/async-storage": "1.17.11",
    "@react-native-community/datetimepicker": "6.7.3",
    "@react-native-community/masked-view": "0.1.10",
    "@react-native-community/netinfo": "9.3.7",
    "@react-navigation/bottom-tabs": "^5.8.0",
    "@react-navigation/native": "^5.7.3",
    "@react-navigation/stack": "^5.9.0",
    "@turf/turf": "^6.3.0",
    "amazon-cognito-identity-js": "^4.5.5",
    "aws-amplify": "^5.1.4",
    "card-validator": "^8.1.0",
    "expo": "~48.0.18",
    "expo-analytics-segment": "~11.2.1",
    "expo-app-loading": "~2.1.1",
    "expo-application": "~5.1.1",
    "expo-asset": "~8.9.1",
    "expo-av": "~13.2.1",
    "expo-build-properties": "~0.6.0",
    "expo-calendar": "~11.1.1",
    "expo-constants": "~14.2.1",
    "expo-dev-client": "~2.2.1",
    "expo-device": "~5.2.1",
    "expo-facebook": "~12.2.0",
    "expo-file-system": "~15.2.2",
    "expo-firebase-analytics": "~7.2.0",
    "expo-font": "~11.1.1",
    "expo-image-manipulator": "~11.1.1",
    "expo-image-picker": "~14.1.1",
    "expo-intent-launcher": "~10.5.2",
    "expo-keep-awake": "~12.0.1",
    "expo-linear-gradient": "~12.1.2",
    "expo-linking": "~4.0.1",
    "expo-location": "~15.1.1",
    "expo-network": "~5.2.1",
    "expo-permissions": "~14.1.1",
    "expo-sms": "~11.2.1",
    "expo-splash-screen": "~0.18.2",
    "expo-status-bar": "~1.4.4",
    "expo-tracking-transparency": "~3.0.3",
    "expo-web-browser": "~12.1.1",
    "formik": "^2.2.5",
    "graphql": "14.0.0",
    "graphql-tag": "^2.11.0",
    "lottie-react-native": "5.1.4",
    "moment": "^2.29.1",
    "moment-timezone": "^0.5.33",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-native": "0.71.8",
    "react-native-branch": "^5.4.0",
    "react-native-collapsible": "^1.5.3",
    "react-native-gesture-handler": "~2.9.0",
    "react-native-get-random-values": "~1.9.0",
    "react-native-keyboard-aware-scroll-view": "^0.9.5",
    "react-native-map-link": "^2.7.25",
    "react-native-maps": "1.3.2",
    "react-native-masked-text": "^1.13.0",
    "react-native-reanimated": "~2.14.4",
    "react-native-responsive-linechart": "^5.7.1",
    "react-native-safe-area-context": "4.5.0",
    "react-native-screens": "~3.20.0",
    "react-native-size-matters": "^0.3.1",
    "react-native-snap-carousel": "^3.9.1",
    "react-native-svg": "13.4.0",
    "react-native-toast-message": "^1.4.2",
    "react-native-vector-icons": "^7.1.0",
    "react-native-web": "~0.18.11",
    "react-native-webview": "11.26.0",
    "reanimated-bottom-sheet": "^1.0.0-alpha.22",
    "rn-range-slider": "https://github.com/nahu/rn-range-slider.git",
    "rxjs": "^6.6.3",
    "sentry-expo": "7.0.1",
    "socket.io-client": "^4.2.0",
    "subscriptions-transport-ws": "^0.9.18",
    "toggle-switch-react-native": "^2.3.0",
    "yup": "^0.31.1"
  },
  "resolutions": {
    "graphql": "14.0.0",
    "**/graphql": "14.0.0",
    "@apollo/client/**/graphql": "14.0.0"
  },
  "devDependencies": {
    "@babel/core": "^7.19.3",
    "@commitlint/cli": "^11.0.0",
    "@commitlint/config-conventional": "^11.0.0",
    "@testing-library/react-native": "^7.1.0",
    "@types/jest": "^26.0.15",
    "@types/node": "^14.14.9",
    "@types/react": "~18.0.24",
    "@types/react-dom": "~18.0.8",
    "@types/react-native": "~0.70.6",
    "@types/react-test-renderer": "^17.0.0",
    "@types/yup": "^0.29.10",
    "@typescript-eslint/eslint-plugin": "^4.8.2",
    "@typescript-eslint/parser": "^4.8.2",
    "babel-eslint": "^10.1.0",
    "babel-jest": "^26.6.3",
    "babel-plugin-graphql-tag": "^3.1.0",
    "babel-plugin-module-resolver": "^4.1.0",
    "babel-plugin-transform-inline-environment-variables": "^0.4.3",
    "babel-preset-react-native": "^4.0.1",
    "deprecated-react-native-prop-types": "^4.0.0",
    "eslint": "^7.13.0",
    "eslint-config-airbnb": "^18.2.1",
    "eslint-config-airbnb-typescript": "^12.0.0",
    "eslint-config-prettier": "^6.15.0",
    "eslint-plugin-import": "^2.22.1",
    "eslint-plugin-jest": "^24.1.3",
    "eslint-plugin-jsx-a11y": "^6.4.1",
    "eslint-plugin-prettier": "^3.1.4",
    "eslint-plugin-react": "^7.21.5",
    "eslint-plugin-react-hooks": "^4.2.0",
    "eslint-plugin-react-native": "^3.10.0",
    "eslint-plugin-react-native-a11y": "^2.0.3",
    "husky": "^4.3.0",
    "jest": "^29.2.1",
    "jest-expo": "^47.0.0",
    "lint-staged": "^10.5.1",
    "metro-react-native-babel-preset": "^0.65.2",
    "prettier": "^2.2.0",
    "prettier-eslint": "^12.0.0",
    "prop-types": "^15.7.2",
    "react-native-dotenv": "^2.5.3",
    "react-test-renderer": "16.13.1",
    "ts-jest": "^26.4.4",
    "typescript": "^4.6.3"
  },
  "private": true,
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged",
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  },
  "lint-staged": {
    "*.{js,jsx,ts,tsx,json,css,md}": [
      "prettier --write",
      "git add"
    ],
    "*{js,jsx,ts,tsx}": [
      "eslint --ext .ts,.tsx"
    ]
  }
}

My eas diasnostic output:

  EAS CLI 5.1.0 environment info:
    System:
      OS: Linux 5.11 Ubuntu 20.04.3 LTS (Focal Fossa)
      Shell: 5.0.17 - /bin/bash
    Binaries:
      Node: 14.15.1 - /usr/bin/node
      Yarn: 1.22.17 - /usr/bin/yarn
      npm: 6.14.8 - /usr/bin/npm
    Utilities:
      Git: 2.25.1 - /usr/bin/git
    npmPackages:
      expo: ~48.0.18 => 48.0.20 
      expo-dev-client: ~2.2.1 => 2.2.1 
      react: 18.2.0 => 18.2.0 
      react-dom: 18.2.0 => 18.2.0 
      react-native: 0.71.8 => 0.71.8 
      react-native-web: ~0.18.11 => 0.18.12 
    npmGlobalPackages:
      eas-cli: 5.1.0
      expo-cli: 6.3.10
    Project workflow: generic

Let me know if you need more information. Thanks in advance

hi! can you share a link to your build page? are you using an intel mac?

Hi thanks for the response, I’m using the intel-medium for iOS build, where is part of my eas.json

{
  "build": {
    "base": {
      "expoCli": "4.13.0",
      "android": {
        "image": "latest",
        "node": "14.19.1",
        "yarn": "1.22.5"
      },
      "ios": {
        "image": "latest",
        "node": "14.19.1",
        "yarn": "1.22.5",
        "resourceClass": "intel-medium"
      }
    },
    "qa": {
      "extends": "base",
      "releaseChannel": "qa",
      "credentialsSource": "local",
      "developmentClient": false,
      "env": {
        ...
      },
      "ios": {
        "distribution": "internal",
        "enterpriseProvisioning": "adhoc"
      },
      "android": {
        "distribution": "internal",
        "withoutCredentials": true,
        "gradleCommand": ":app:assembleRelease"
      }
    }
  },
  "cli": {
    "version": ">= 0.45.0"
  }
}

hi there,

this regression was introduced when we released support for bun, however we do not intend on fixing it because we will be retiring the intel fleet tomorrow. more information here.

switch to apple silicon workers, they are much faster! https://github.com/expo/fyi/blob/main/intel-to-m1.md

We started receiving this error yesterday for all our builds. We are using this for example:

{
  "cli": {
    "version": ">= 0.40.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal",
      "channel": "development",
      "node": "16.20.1",
      "ios": {
        "resourceClass": "intel-medium"
      }
    },
...

Without the resourceClass it errors:

Error: Failed to find Electron v1.8.8 for darwin-arm64 at https://github.com/electron/electron/releases/download/v1.8.8/electron-v1.8.8-darwin-arm64.zip

I’ve tried “m-medium”. I’ve tried two dozen different configurations. I’ve reviewed the linked document, but that says removing the resourceClass should work. But it fixes the electron issue.

Can someone post a sample of what the config should be? Do I need to specify the image? Thank you.

hi kelly!

we will be shutting off all intel workers at midnight tonight, as discussed in this post.

re: your electron error - you may need to either update electron (1.8.8 appears to be from 2018, before apple silicon chips were released) or make it an optional dependency if it isn’t actually needed for building your ios app.

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.