Build Failed with “non-zero exit code: 2” error but works in Local!

Hi Netlify team
@hrishikesh

We are not able to deploy, see here:
Deploy details | Netlify

On local machine everything is building correctly with settings same as on Netlify.
I can build and run production instance of website on local without any problems.
I also double checked all env variables on Netlify, added config setting for Node version to force version 16x, changed VM image (there are two available on the platform) and still same.

Could you please help us understand why builds are failing?

1:43:35 PM: Build ready to start
1:43:39 PM: build-image version: 6ac9cdbcc295289dbaea7d39b2f1a3ac25ad3380 (xenial)
1:43:39 PM: build-image tag: release-v3.14.0
1:43:39 PM: buildbot version: 584b2b7b74f1e479e0403f1e60769a2080b692a6
1:43:39 PM: Fetching cached dependencies
1:43:39 PM: Starting to download cache of 203.3MB
1:43:40 PM: Finished downloading cache in 1.553727723s
1:43:40 PM: Starting to extract cache
1:43:42 PM: Finished extracting cache in 2.043917742s
1:43:42 PM: Finished fetching cache in 3.658711801s
1:43:42 PM: Starting to prepare the repo for build
1:43:43 PM: Preparing Git Reference refs/heads/development
1:43:44 PM: Parsing package.json dependencies
1:43:45 PM: Starting build script
1:43:45 PM: Installing dependencies
1:43:45 PM: Python version set to 2.7
1:43:46 PM: Started restoring cached node version
1:43:47 PM: Finished restoring cached node version
1:43:47 PM: Attempting node version '16.16.0' from .node-version
1:43:47 PM: Downloading and installing node v16.16.0...
1:43:48 PM: Downloading https://nodejs.org/dist/v16.16.0/node-v16.16.0-linux-x64.tar.xz...
1:43:48 PM: Computing checksum with sha256sum
1:43:48 PM: Checksums matched!
1:43:51 PM: Now using node v16.16.0 (npm v8.11.0)
1:43:51 PM: Started restoring cached build plugins
1:43:51 PM: Finished restoring cached build plugins
1:43:51 PM: Attempting ruby version 2.7.2, read from environment
1:43:52 PM: Using ruby version 2.7.2
1:43:52 PM: Using PHP version 5.6
1:43:52 PM: No npm workspaces detected
1:43:52 PM: Started restoring cached node modules
1:43:52 PM: Finished restoring cached node modules
1:43:53 PM: Installing NPM modules using NPM version 8.11.0
1:43:53 PM: npm WARN config tmp This setting is no longer used.  npm stores temporary files in a special
1:43:53 PM: npm WARN config location in the cache, and they are managed by
1:43:53 PM: npm WARN config     [`cacache`](http://npm.im/cacache).
1:43:53 PM: npm WARN config tmp This setting is no longer used.  npm stores temporary files in a special
1:43:53 PM: npm WARN config location in the cache, and they are managed by
1:43:53 PM: npm WARN config     [`cacache`](http://npm.im/cacache).
1:43:59 PM: added 1 package, removed 200 packages, changed 25 packages, and audited 612 packages in 6s
1:43:59 PM: 119 packages are looking for funding
1:43:59 PM:   run `npm fund` for details
1:43:59 PM: 1 moderate severity vulnerability
1:43:59 PM: To address all issues (including breaking changes), run:
1:43:59 PM:   npm audit fix --force
1:43:59 PM: Run `npm audit` for details.
1:43:59 PM: NPM modules installed
1:43:59 PM: npm WARN config tmp This setting is no longer used.  npm stores temporary files in a special
1:43:59 PM: npm WARN config location in the cache, and they are managed by
1:43:59 PM: npm WARN config     [`cacache`](http://npm.im/cacache).
1:43:59 PM: Started restoring cached go cache
1:43:59 PM: Finished restoring cached go cache
1:43:59 PM: go version go1.14.4 linux/amd64
1:43:59 PM: go version go1.14.4 linux/amd64
1:43:59 PM: Installing missing commands
1:43:59 PM: Verify run directory
1:44:01 PM: ​
1:44:01 PM: ────────────────────────────────────────────────────────────────
1:44:01 PM:   Netlify Build                                                 
1:44:01 PM: ────────────────────────────────────────────────────────────────
1:44:01 PM: ​
1:44:01 PM: ❯ Version
1:44:01 PM:   @netlify/build 27.5.0
1:44:01 PM: ​
1:44:01 PM: ❯ Flags
1:44:01 PM:   baseRelDir: true
1:44:01 PM:   buildId: 62dfd367e71d2b000812a1e1
1:44:01 PM:   deployId: 62dfd367e71d2b000812a1e3
1:44:01 PM: ​
1:44:01 PM: ❯ Current directory
1:44:01 PM:   /opt/build/repo
1:44:01 PM: ​
1:44:01 PM: ❯ Config file
1:44:01 PM:   /opt/build/repo/netlify.toml
1:44:01 PM: ​
1:44:01 PM: ❯ Context
1:44:01 PM:   branch-deploy
1:44:01 PM: ​
1:44:01 PM: ❯ Loading plugins
1:44:01 PM:    - @netlify/plugin-nextjs@4.12.2 from Netlify app
1:44:02 PM: ​
1:44:02 PM: ────────────────────────────────────────────────────────────────
1:44:02 PM:   1. @netlify/plugin-nextjs (onPreBuild event)                  
1:44:02 PM: ────────────────────────────────────────────────────────────────
1:44:02 PM: ​
1:44:02 PM: Next.js cache restored.
1:44:02 PM: Netlify configuration property "build.environment.NEXT_PRIVATE_TARGET" value changed.
1:44:02 PM: ​
1:44:02 PM: (@netlify/plugin-nextjs onPreBuild completed in 266ms)
1:44:02 PM: ​
1:44:02 PM: ────────────────────────────────────────────────────────────────
1:44:02 PM:   2. build.command from netlify.toml                            
1:44:02 PM: ────────────────────────────────────────────────────────────────
1:44:02 PM: ​
1:44:02 PM: $ npm run build
1:44:03 PM: npm WARN config tmp This setting is no longer used.  npm stores temporary files in a special
1:44:03 PM: npm WARN config location in the cache, and they are managed by
1:44:03 PM: npm WARN config     [`cacache`](http://npm.im/cacache).
1:44:03 PM: > matchspace-website@0.1.1 build
1:44:03 PM: > next build
1:44:03 PM: warn  - You have enabled experimental feature(s).
1:44:03 PM: warn  - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use them at your own risk.
1:44:03 PM: info  - Checking validity of types...
1:44:04 PM: warn  - No ESLint configuration detected. Run next lint to begin setup
1:44:04 PM: info  - Creating an optimized production build...
1:45:09 PM: info  - Compiled successfully
1:45:09 PM: info  - Collecting page data...
1:45:14 PM: info  - Generating static pages (0/93)
1:45:30 PM: Inlined 2.06 kB (0% of original 3.92 MB) of _next/static/css/5156ee6697531531.css.
1:45:30 PM: Time 11098.404918
1:45:31 PM: Inlined 2.06 kB (0% of original 3.92 MB) of _next/static/css/5156ee6697531531.css.
1:45:31 PM: Time 11619.354539
1:46:07 PM: Inlined 8.83 kB (0% of original 3.92 MB) of _next/static/css/5156ee6697531531.css.
1:46:07 PM: Time 49895.158851
1:46:09 PM: Inlined 8.83 kB (0% of original 3.92 MB) of _next/static/css/5156ee6697531531.css.
1:46:09 PM: Time 51500.900496
1:46:12 PM: Inlined 9.27 kB (0% of original 3.92 MB) of _next/static/css/5156ee6697531531.css.
1:46:12 PM: Time 51819.882362
1:46:13 PM: Inlined 9.27 kB (0% of original 3.92 MB) of _next/static/css/5156ee6697531531.css.
1:46:13 PM: Time 52697.320812
1:46:15 PM: Inlined 9.27 kB (0% of original 3.92 MB) of _next/static/css/5156ee6697531531.css.
1:46:16 PM: Time 54975.876414
1:46:16 PM: info  - Generating static pages (7/93)
1:46:19 PM: Inlined 9.27 kB (0% of original 3.92 MB) of _next/static/css/5156ee6697531531.css.
1:46:39 PM: Killed
1:46:40 PM: ​
1:46:40 PM: ────────────────────────────────────────────────────────────────
1:46:40 PM:   "build.command" failed                                        
1:46:40 PM: ────────────────────────────────────────────────────────────────
1:46:40 PM: ​
1:46:40 PM:   Error message
1:46:40 PM:   Command failed with exit code 137: npm run build (https://ntl.fyi/exit-code-137)
1:46:40 PM: ​
1:46:40 PM:   Error location
1:46:40 PM:   In build.command from netlify.toml:
1:46:40 PM:   npm run build
1:46:40 PM: ​
1:46:40 PM:   Resolved config
1:46:40 PM:   build:
1:46:40 PM:     command: npm run build
1:46:40 PM:     commandOrigin: config
1:46:40 PM:     environment:
1:46:40 PM:       - ALGOLIA_BROWSEAPIKEY
1:46:40 PM:       - ALGOLIA_COURSEINDEX
1:46:40 PM:       - ALGOLIA_SEARCHAPIKEY
1:46:40 PM:       - ALGOLIA_SEARCHAPPID
1:46:40 PM:       - ALGOLIA_USERINDEX
1:46:40 PM:       - GOOGLE_ANALYTICS_ID
1:46:40 PM:       - GOOGLE_MAP_API
1:46:40 PM:       - GOOGLE_TAG_MANAGER_ID
1:46:40 PM:       - MAPBOX_TOKEN
1:46:40 PM:       - MATCHSPACE_PREPROD
1:46:40 PM:       - MATCHSPACE_PROD
1:46:40 PM:       - NEXT_PUBLIC_ALGOLIA_COURSEINDEX
1:46:40 PM:       - NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY
1:46:40 PM:       - NEXT_PUBLIC_ALGOLIA_SEARCH_APP_ID
1:46:40 PM:       - NEXT_PUBLIC_ALGOLIA_USERINDEX
1:46:40 PM:       - NODE_VERSION
1:46:40 PM:       - ONEGRAPH_AUTHLIFY_TOKEN
1:46:40 PM:       - SMTP_HOST
1:46:40 PM:       - SMTP_PASSWORD
1:46:40 PM:       - SMTP_PORT
1:46:40 PM:       - SMTP_SERVER_EMAIL_ADDRESS
1:46:40 PM:       - SMTP_USERNAME
1:46:40 PM:       - STORYBLOK_API_TOKEN
1:46:40 PM:       - STORYBLOK_VERSION
1:46:40 PM:       - NEXT_PRIVATE_TARGET
1:46:40 PM:     publish: /opt/build/repo/.next
1:46:40 PM:     publishOrigin: ui
1:46:40 PM:   functionsDirectory: /opt/build/repo/functions
1:46:40 PM:   plugins:
1:46:40 PM:     - inputs: {}
1:46:40 PM:       origin: ui
1:46:40 PM:       package: '@netlify/plugin-nextjs'
1:46:40 PM:   redirects:
1:46:40 PM:     - force: true
1:46:40 PM:       from: /
1:46:40 PM:       status: 301
1:46:40 PM:       to: /ch-de
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/blog-de/musiklehrpersonen/flexible-unterrichtsraeume-fuer-musiklehrpersonen-in-zuerich-nord-willkommen-in-der-notenloft
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/flexible-unterrichtsr%C3%A4ume-f%C3%BCr-musiklehrpersonen-in-z%C3%BCrich-nord-willkommen-in-der-notenloft
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/blog-de/musikschueler-innen/gitarre-spielen-lernen-fuer-anfaenger-das-musst-du-wissen
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/gitarre-spielen-lernen-f%C3%BCr-anf%C3%A4nger-das-musst-du-wissen
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/blog-de/musikschueler-innen/ich-kann-nicht-singen-fakt-oder-mythos
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/ich-kann-nicht-singen-singen-lernen-f%C3%BCr-anf%C3%A4nger-innen
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/blog-de/musikschueler-innen/geigenspielen-lernen-fuer-anfaenger-das-musst-du-wissen
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/geigenspielen-lernen-f%C3%BCr-anf%C3%A4nger-das-musst-du-wissen
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/blog-de/musikschueler-innen/klavierspielen-lernen-fuer-anfaenger-innen-das-musst-du-wissen
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/klavierspielen-lernen-f%C3%BCr-anf%C3%A4nger-innen-das-musst-du-wissen
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/blog-de/musikschueler-innen/cellounterricht-fuer-anfaenger-innen-das-musst-du-wissen
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/cellounterricht-f%C3%BCr-anf%C3%A4nger-innen-das-musst-du-wissen
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/blog-en/music-teachers/flexible-teaching-location-for-music-teachers-in-zurich-welcome-to-notenloft
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/flexible-teaching-location-for-music-teachers-in-zurich-welcome-to-notenloft
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/blog-en/music-students/learning-to-play-the-violin-for-beginners
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/learning-to-play-the-violin-for-beginners-here-s-what-you-need-to-know
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/blog-en/music-students/i-can-t-sing-fact-or-myth
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/i-can-t-sing-learning-to-sing-for-beginners
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/blog-en/music-students/learning-to-play-the-piano-for-beginners-here-s-what-you-need-to-know
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/learning-to-play-the-piano-for-beginners-here-s-what-you-need-to-know
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/blog-en/music-students/learn-to-play-the-guitar-for-beginners-that-s-what-you-need-to-know
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/learn-to-play-the-guitar-for-beginners-that-s-what-you-need-to-know
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/blog-en/music-students/all-things-cello-learning-to-play-as-a-beginner
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/all-things-cello-learning-to-play-as-a-beginner
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/blog
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/ueber/in-den-nachrichten
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/blog/categories/in-den-nachrichten
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/ueber/neuigkeiten
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/blog/categories/neuigkeiten
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/blog
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/about/in-the-news
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/blog/categories/in-the-news
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/about/news
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/blog/categories/news
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/in-den-nachrichten/artikel-in-der-online-zeitschrift-mamalicous
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/artikel-in-der-online-zeitschrift-mamalicous
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/in-den-nachrichten/erste-folge-des-sunjam-zugabe-podcast
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/neuigkeiten/in-den-nachrichten/erste-folge-des-sunjam-zugabe-podcast
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/in-den-nachrichten/matchspace-music-im-tadah-magazin
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/euigkeiten/in-den-nachrichten/matchspace-music-im-tadah-magazin
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/in-den-nachrichten/matchspace-music-in-der-juni-ausgabe-von-hr-today
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/matchspace-music-in-der-juni-ausgabe-von-hr-today
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/in-den-nachrichten/matchspace-music-in-der-schweizer-musikzeitung
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/matchspace-music-in-der-schweizer-musikzeitung
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/in-den-nachrichten/swiss-startup-days-finalist-2021
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/swiss-startup-days-finalist-2021
1:46:40 PM:     - force: true
1:46:40 PM:       from: https://matchspace-music.ch/ch-de/neuigkeiten/nachrichtendetails/150-musiklehrpersonen-ein-kleiner-meilenstein
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/150-musiklehrpersonen-ein-kleiner-meilenstein
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/nachrichtendetails/mitarbeiter-engagement-durch-musik
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/mitarbeiter-engagement-durch-musik-musikunterricht-f%C3%BCr-firmen
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/nachrichtendetails/pressemitteilung-erfolgreiche-seed-finanzierung-ein-neues-teammitglied-und-einzug-in-den-technopark
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/pressemitteilung-seed-finanzierung-ein-neues-teammitglied-und-einzug-in-den-technopark
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/nachrichtendetails/webinarreihe-zu-digitalem-marketing-fuer-musiklehrpersonen-an-der-hkb
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/webinarreihe-zu-digitalem-marketing-f%C3%BCr-musiklehrpersonen-an-der-hkb
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/nachrichtendetails/willkommen-im-team-janina
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/willkommen-im-team-janina
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/nachrichtendetails/willkommen-sebastian-heimann
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/willkommen-im-team-sebastian-heimann
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-de/neuigkeiten/nachrichtendetails/zu-besuch-in-der-notenloft-zuerich-nord
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/post/zu-besuch-in-der-notenloft-zürich-nord
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/in-the-news/featured-article-in-the-online-magazine-mamalicous
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/featured-article-in-the-online-magazine-mamalicous
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/in-the-news/featured-article-in-the-swiss-music-newspaper
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/featured-article-in-the-swiss-music-newspaper
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/in-the-news/featured-in-tadah-magazine
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/matchspace-music-in-tadah-magazine
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/in-the-news/first-episode-of-sunjam-zugabe-podcast
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/first-episode-of-sunjam-zugabe-podcast
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/in-the-news/matchspace-music-featured-in-hr-today
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/matchspace-music-featured-in-hr-today
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/in-the-news/swiss-startup-days-finalist-2021
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/swiss-startup-days-finalist-2021-1
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/news-detail/150-music-teachers-milestone
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/150-music-teachers-milestone
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/news-detail/employee-engagement-through-music
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/employee-engagement-through-music
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/news-detail/press-release-successful-funding-round-a-new-team-member-and-moving-into-technopark
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/press-release-successful-seed-funding-round-a-new-team-member-and-moving-into-technopark
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/news-detail/visiting-notenloft-in-northern-zurich
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/visiting-notenloft-in-northern-zurich
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/news-detail/webinar-series-on-digital-marketing-at-hbk
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/webinar-series-on-digital-marketing-at-hkb
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/news-detail/welcome-to-the-team-janina
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/welcome-to-the-team-janina
1:46:40 PM:     - force: true
1:46:40 PM:       from: /ch-en/news/news-detail/welcome-to-the-team-sebastian
1:46:40 PM:       status: 301
1:46:40 PM:       to: https://www.blog.matchspace-music.ch/en/post/welcome-to-the-team-sebastian
1:46:40 PM:   redirectsOrigin: config
1:46:41 PM: Caching artifacts
1:46:41 PM: Started saving node modules
1:46:41 PM: Finished saving node modules
1:46:41 PM: Started saving build plugins
1:46:42 PM: Finished saving build plugins
1:46:42 PM: Started saving pip cache
1:46:42 PM: Finished saving pip cache
1:46:42 PM: Started saving emacs cask dependencies
1:46:43 PM: Finished saving emacs cask dependencies
1:46:43 PM: Started saving maven dependencies
1:46:43 PM: Finished saving maven dependencies
1:46:43 PM: Started saving boot dependencies
1:46:43 PM: Finished saving boot dependencies
1:46:43 PM: Started saving rust rustup cache
1:46:43 PM: Finished saving rust rustup cache
1:46:43 PM: Started saving go dependencies
1:46:43 PM: Finished saving go dependencies
1:47:29 PM: Build failed due to a user error: Build script returned non-zero exit code: 2
1:47:29 PM: Creating deploy upload records
1:47:29 PM: Failing build: Failed to build site
1:47:29 PM: Failed during stage 'building site': Build script returned non-zero exit code: 2 (https://ntl.fyi/exit-code-2)
1:47:29 PM: Finished processing build request in 3m50.654429901s

Thanks for your help, this issue is business critical for us.

@matchspace Error 137 typically points to a memory issue as seen here: