I am trying to deploy a nuxt app (also happens in Nextjs app) using GitHub CI pipeline and I am getting Error: /lib64/libstdc++.so.6: version GLIBCXX_3.4.30' not found` and
500: INTERNAL_SERVER_ERRORCode: FUNCTION_INVOCATION_FAILEDID: bom1::hdzgb-1729258250781-21fd7b2e8f3c.full error:
Unhandled Rejection: Error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /var/task/node_modules/isolated-vm/out/isolated_vm.node) at Module._extensions..node (node:internal/modules/cjs/loader:1586:18) at Module.load (node:internal/modules/cjs/loader:1288:32) at Module._load (node:internal/modules/cjs/loader:1104:12) at /opt/rust/nodejs.js:1:11762 at [Function.ar](https://function.ar) (/opt/rust/nodejs.js:1:12136) at e..te._load (/opt/rust/nodejs.js:1:11732) at Module.require (node:internal/modules/cjs/loader:1311:19) at a (/opt/rust/bytecode.js:1:1094) at Object. (/var/task/node_modules/isolated-vm/isolated-vm.js:1:80) at Module. (/opt/rust/bytecode.js:1:1435) { code: 'ERR_DLOPEN_FAILED'}Unhandled Rejection: Error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /var/task/node_modules/isolated-vm/out/isolated_vm.node) at Module._extensions..node (node:internal/modules/cjs/loader:1586:18) at Module.load (node:internal/modules/cjs/loader:1288:32) at Module._load (node:internal/modules/cjs/loader:1104:12) at /opt/rust/nodejs.js:1:11762 at Function.ar (/opt/rust/nodejs.js:1:12136) at e.<computed>.te._load (/opt/rust/nodejs.js:1:11732) at Module.require (node:internal/modules/cjs/loader:1311:19) at a (/opt/rust/bytecode.js:1:1094) at Object.<anonymous> (/var/task/node_modules/isolated-vm/isolated-vm.js:1:80) at Module.<anonymous> (/opt/rust/bytecode.js:1:1435) { code: 'ERR_DLOPEN_FAILED'}Node.js process exited with exit status: 128. The logs above can help with debugging the issue.!md-link-0 !md-link-1
While investigating, I found out that it uses Vercel functions to host the .vercel/output folder, and the isolated-vm library requires the libstdc++ library. I am not sure if it's available for us in the Node Serverless runtime of Vercel.
When I try to import it directly from GitHub and deploy, it uses the node20 runtime and libstdc++ library is there so everything works beautifully: https://vercel.com/docs/deployments/build-image/build-image but not when I am deploying from CI.
CI workflow yaml:
name: Vercel Production Deploymentenv: VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}on: push: branches: - mainjobs: Deploy-Production: runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4
- name: Use Node.js uses: actions/setup-node@v4 with: node-version: 20
- name: Install Project Dependencies run: npm install
- name: Install Vercel CLI run: npm install --global vercel@latest
- name: Pull Vercel Environment Information run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
- name: Build Project Artifacts run: vercel build --token=${{ secrets.VERCEL_TOKEN }}
- name: Deploy Project Artifacts to Vercel run: | vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}
Deployment URL or Custom Domain:https://nuxt-isolated-vm2-zfsc5aq0w-sidmohanty11s-projects.vercel.app/Environment (local, preview, production): productionProject Framework: nuxtjsBuild Settings: Framework Preset: vercel Build Command (if not default): Output Directory (if not default): Install Command (if not default):Node/Runtime Version:20Package Manager:npmRelevant Packages:isolated-vm