next.js: Unable to download swc package - Next.js project in Android Termux

Link to the code that reproduces this issue

https://github.com/Clever-Shivanshu/file-upload-api

To Reproduce

  1. Start the Application by npm run dev
  2. Visit localhost:3000/api/fileUpload
  3. It crashes in Android termux after it

Current vs. Expected behavior

I am getting trying to create a api which takes files and save in public/uploads

But when go to http://localhost:3000/api/fileUpload

It crashes and getting this `$ npm run dev

file-upload@0.1.0 dev next dev

▲ Next.js 14.0.2

Disabled SWC as replacement for Babel because of custom Babel configuration “.babelrc” https://nextjs.org/docs/messages/swc-disabled ✓ Ready in 5.6s ⚠ Attempted to load @next/swc-android-arm64, but it was not installed ⚠ Found lockfile missing swc dependencies, patching… ⨯ Failed to patch lockfile, please try uninstalling and reinstalling next in this workspace TypeError: fetch failed at Object.fetch (node:internal/deps/undici/undici:11522:11) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async fetchPkgInfo (/data/data/com.termux/files/home/file-upload-api/node_modules/next/dist/lib/patch-incorrect-lockfile.js:64:17) at async Promise.all (index 0) at async patchIncorrectLockfile (/data/data/com.termux/files/home/file-upload-api/node_modules/next/dist/lib/patch-incorrect-lockfile.js:160:26) { cause: Error [ERR_SOCKET_CONNECTION_TIMEOUT]: Socket connection timeout at new NodeError (node:internal/errors:399:5) at internalConnectMultiple (node:net:1099:20) at Timeout.internalConnectMultipleTimeout (node:net:1638:3) at listOnTimeout (node:internal/timers:575:11) at process.processTimers (node:internal/timers:514:7) { code: ‘ERR_SOCKET_CONNECTION_TIMEOUT’ } } ⨯ Failed to load SWC binary for android/arm64, see more info here: https://nextjs.org/docs/messages/failed-loading-swc`

Verify canary release

  • I verified that the issue exists in the latest Next.js canary release

Provide environment information

OS: Android 13
App: termux

Which area(s) are affected? (Select all that apply)

SWC minifier (swcMinify: true)

Additional context

I tried to fix it but not working

About this issue

  • Original URL
  • State: open
  • Created 8 months ago
  • Reactions: 11
  • Comments: 25

Most upvoted comments

I also faced the same issue. I’m getting an error like Downloading swc package @next/swc-android-arm64... ⨯ Failed to download swc package from https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-14.0.4.tgz Error: request failed with status 404

Is there any solution or workaround? Any help is appreciated. Screenshot_2023-12-14-16-51-05-23_84d3000e3f4017145260f7618db1d683

Looking at the @next/swc-android-arm64 package on the NPM registry, the latest version is 13.2.4.

This appears to be tied to the NextJS version. If you downgrade to that NextJS version, the download should be successful.

Looks like the releases are usually published by the vercel-release-bot, so someone from Vercel will likely need to have this built and published for the 14.x releases.

I also faced the same issue. I’m getting an error like Downloading swc package @next/swc-android-arm64... ⨯ Failed to download swc package from https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-14.0.4.tgz Error: request failed with status 404

Is there any solution or workaround? Any help is appreciated. Screenshot_2023-12-14-16-51-05-23_84d3000e3f4017145260f7618db1d683

+1. I also get this issue

I’m getting the same 404 error when in ubuntu 22 proot termux.

Install rust

I inderstand swc is built with rust but that does not help, I’ve installed rust and the project still gets the 404

Works for me, just install rust in any termux proot with curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh and install nextjs latest version

Does the Android device have to be rooted ?

to install proot-distro? nope!

Thanks the answer was to use proot and installed nvm, then cd into your next.js project and create an .nvmrc with the version of node. You can use nvm install --lts to install the latest LTS version. npm install, npm build - this time build doesn’t fail due to missing swc.