Netlify build started failing with no new commits/code changes

Netlify build has begun failing with no new commits / code changes (still builds locally). Compiler doesn’t seem to like javascript classes any more - the 'not defined’s all relate to fields/methods. Have tried suggested fix of adding “CI=” to the beginning of the build but got the same result.

Full log:

9:37:52 AM: Build ready to start
9:37:55 AM: build-image version: d84c79427e8f83c1ba17bcdd7b3fe38059376b68
9:37:55 AM: build-image tag: v3.6.1
9:37:55 AM: buildbot version: df42d44cc6a0381cf657a671baf049c03981bafe
9:37:55 AM: Fetching cached dependencies
9:37:55 AM: Failed to fetch cache, continuing with build
9:37:55 AM: Starting to prepare the repo for build
9:37:55 AM: No cached dependencies found. Cloning fresh repo
9:37:55 AM: git clone https://github.com/ANRoebuck/mtg-shelf
9:37:57 AM: Preparing Git Reference refs/heads/compare-the-magic
9:37:58 AM: Different publish path detected, going to use the one specified in the Netlify configuration file: 'build' versus 'build/' in the Netlify UI
9:37:59 AM: Starting build script
9:37:59 AM: Installing dependencies
9:37:59 AM: Python version set to 2.7
9:38:00 AM: v12.18.0 is already installed.
9:38:01 AM: Now using node v12.18.0 (npm v6.14.4)
9:38:01 AM: Started restoring cached build plugins
9:38:01 AM: Finished restoring cached build plugins
9:38:01 AM: Attempting ruby version 2.7.1, read from environment
9:38:03 AM: Using ruby version 2.7.1
9:38:03 AM: Using PHP version 5.6
9:38:03 AM: Started restoring cached node modules
9:38:03 AM: Finished restoring cached node modules
9:38:03 AM: Installing NPM modules using NPM version 6.14.4
9:38:05 AM: npm WARN deprecated axios@0.19.0: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
9:38:06 AM: npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
9:38:06 AM: npm WARN deprecated babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
9:38:07 AM: npm WARN deprecated eslint-loader@3.0.3: This loader has been deprecated. Please use eslint-webpack-plugin
9:38:07 AM: npm WARN deprecated html-webpack-plugin@4.0.0-beta.11: please switch to a stable version
9:38:07 AM: npm WARN deprecated fsevents@2.1.2: "Please update to latest v2.3 or v2.2"
9:38:07 AM: npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
9:38:08 AM: npm WARN deprecated har-validator@5.1.5: this library is no longer supported
9:38:08 AM: npm WARN deprecated @types/testing-library__dom@7.5.0: This is a stub types definition. testing-library__dom provides its own type definitions, so you do not need this installed.
9:38:12 AM: npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
9:38:13 AM: npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
9:38:15 AM: npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
9:38:17 AM: npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
9:38:18 AM: npm WARN deprecated @hapi/joi@15.1.1: Switch to 'npm install joi'
9:38:21 AM: npm WARN deprecated @hapi/hoek@8.5.1: This version has been deprecated and is no longer supported or maintained
9:38:21 AM: npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained
9:38:21 AM: npm WARN deprecated @hapi/address@2.1.4: Moved to 'npm install @sideway/address'
9:38:21 AM: npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
9:38:23 AM: npm WARN deprecated left-pad@1.3.0: use String.prototype.padStart()
9:38:24 AM: npm WARN deprecated core-js@2.6.12: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
9:38:53 AM: > bufferutil@4.0.3 install /opt/build/repo/node_modules/bufferutil
9:38:53 AM: > node-gyp-build
9:38:53 AM: > utf-8-validate@5.0.4 install /opt/build/repo/node_modules/utf-8-validate
9:38:53 AM: > node-gyp-build
9:38:54 AM: > node-sass@4.14.1 install /opt/build/repo/node_modules/node-sass
9:38:54 AM: > node scripts/install.js
9:38:54 AM: Downloading binary from https://github.com/sass/node-sass/releases/download/v4.14.1/linux-x64-72_binding.node
9:38:54 AM: Download complete
9:38:54 AM: Binary saved to /opt/build/repo/node_modules/node-sass/vendor/linux-x64-72/binding.node
9:38:55 AM: Caching binary to /opt/buildhome/.npm/node-sass/4.14.1/linux-x64-72_binding.node
9:38:55 AM: > core-js@2.6.12 postinstall /opt/build/repo/node_modules/babel-runtime/node_modules/core-js
9:38:55 AM: > node -e "try{require('./postinstall')}catch(e){}"
9:38:55 AM: > core-js@3.9.0 postinstall /opt/build/repo/node_modules/core-js
9:38:55 AM: > node -e "try{require('./postinstall')}catch(e){}"
9:38:55 AM: > core-js-pure@3.9.0 postinstall /opt/build/repo/node_modules/core-js-pure
9:38:55 AM: > node -e "try{require('./postinstall')}catch(e){}"
9:38:56 AM: > node-sass@4.14.1 postinstall /opt/build/repo/node_modules/node-sass
9:38:56 AM: > node scripts/build.js
9:38:56 AM: Binary found at /opt/build/repo/node_modules/node-sass/vendor/linux-x64-72/binding.node
9:38:56 AM: Testing binary
9:38:57 AM: Binary is fine
9:38:58 AM: npm notice created a lockfile as package-lock.json. You should commit this file.
9:38:58 AM: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/react-scripts/node_modules/fsevents):
9:38:58 AM: npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
9:38:58 AM: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/jest-haste-map/node_modules/fsevents):
9:38:58 AM: npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
9:38:58 AM: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.1 (node_modules/chokidar/node_modules/fsevents):
9:38:58 AM: npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
9:38:58 AM: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/watchpack-chokidar2/node_modules/chokidar/node_modules/fsevents):
9:38:58 AM: npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
9:38:58 AM: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/webpack-dev-server/node_modules/chokidar/node_modules/fsevents):
9:38:58 AM: npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
9:38:58 AM: npm WARN tsutils@3.20.0 requires a peer of typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta but none is installed. You must install peer dependencies yourself.
9:38:58 AM: npm WARN The package npm-run-all is included as both a dev and production dependency.
9:38:58 AM: added 1748 packages from 825 contributors and audited 1753 packages in 54.234s
9:39:00 AM: 82 packages are looking for funding
9:39:00 AM:   run `npm fund` for details
9:39:00 AM: found 5 vulnerabilities (1 low, 4 high)
9:39:00 AM:   run `npm audit fix` to fix them, or `npm audit` for details
9:39:00 AM: NPM modules installed
9:39:00 AM: Started restoring cached go cache
9:39:00 AM: Finished restoring cached go cache
9:39:00 AM: go version go1.14.4 linux/amd64
9:39:00 AM: go version go1.14.4 linux/amd64
9:39:00 AM: Installing missing commands
9:39:00 AM: Verify run directory
9:39:02 AM: ​
9:39:02 AM: ────────────────────────────────────────────────────────────────
9:39:02 AM:   Netlify Build                                                 
9:39:02 AM: ────────────────────────────────────────────────────────────────
9:39:02 AM: ​
9:39:02 AM: ❯ Version
9:39:02 AM:   @netlify/build 9.1.3
9:39:02 AM: ​
9:39:02 AM: ❯ Flags
9:39:02 AM:   deployId: 6034ccf0a2180fcdfe0cfb69
9:39:02 AM:   mode: buildbot
9:39:02 AM: ​
9:39:02 AM: ❯ Current directory
9:39:02 AM:   /opt/build/repo
9:39:02 AM: ​
9:39:02 AM: ❯ Config file
9:39:02 AM:   No config file was defined: using default values.
9:39:02 AM: ​
9:39:02 AM: ❯ Context
9:39:02 AM:   production
9:39:02 AM: ​
9:39:02 AM: ────────────────────────────────────────────────────────────────
9:39:02 AM:   1. Build command from Netlify app                             
9:39:02 AM: ────────────────────────────────────────────────────────────────
9:39:02 AM: ​
9:39:02 AM: $ npm run build
9:39:03 AM: > mtg-shelf@0.1.0 build /opt/build/repo
9:39:03 AM: > CI= react-scripts build
9:39:04 AM: Creating an optimized production build...
9:39:40 AM: Failed to compile.
9:39:40 AM: 
9:39:40 AM: ./src/compare-prices/models/model-manaleak.js
9:39:40 AM:   Line 6:3:    'parser' is not defined                    no-undef
9:39:40 AM:   Line 8:3:    Unexpected use of 'name'                   no-restricted-globals
9:39:40 AM:   Line 9:3:    'logo' is not defined                      no-undef
9:39:40 AM:   Line 10:3:   'baseUrl' is not defined                   no-undef
9:39:40 AM:   Line 11:3:   'prefix' is not defined                    no-undef
9:39:40 AM:   Line 12:3:   'searchPath' is not defined                no-undef
9:39:40 AM:   Line 14:3:   'search' is not defined                    no-undef
9:39:40 AM:   Line 34:3:   'getHtml' is not defined                   no-undef
9:39:40 AM:   Line 36:3:   'searchTermToUrl' is not defined           no-undef
9:39:40 AM:   Line 39:3:   'allResults' is not defined                no-undef
9:39:40 AM:   Line 47:3:   'nameFromResultNode' is not defined        no-undef
9:39:40 AM:   Line 57:3:   'priceFromResultNode' is not defined       no-undef
9:39:40 AM:   Line 70:3:   'priceValueFromPriceText' is not defined   no-undef
9:39:40 AM:   Line 72:3:   'stockFromResultNode' is not defined       no-undef
9:39:40 AM:   Line 85:3:   'stockValueFromStockText' is not defined   no-undef
9:39:40 AM:   Line 87:3:   'imgSrcFromResultNode' is not defined      no-undef
9:39:40 AM:   Line 96:3:   'productRefFromResultNode' is not defined  no-undef
9:39:40 AM:   Line 105:3:  'expansionFromResultNode' is not defined   no-undef
9:39:40 AM: Search for the keywords to learn more about each error.
9:39:40 AM: npm ERR! code ELIFECYCLE
9:39:40 AM: npm ERR! errno 1
9:39:40 AM: npm ERR! mtg-shelf@0.1.0 build: `CI= react-scripts build`
9:39:40 AM: npm ERR! Exit status 1
9:39:40 AM: npm ERR!
9:39:40 AM: npm ERR! Failed at the mtg-shelf@0.1.0 build script.
9:39:40 AM: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
9:39:40 AM: npm ERR! A complete log of this run can be found in:
9:39:40 AM: npm ERR!     /opt/buildhome/.npm/_logs/2021-02-23T09_39_40_987Z-debug.log
9:39:41 AM: ​
9:39:41 AM: ────────────────────────────────────────────────────────────────
9:39:41 AM:   "build.command" failed                                        
9:39:41 AM: ────────────────────────────────────────────────────────────────
9:39:41 AM: ​
9:39:41 AM:   Error message
9:39:41 AM:   Command failed with exit code 1: npm run build
9:39:41 AM: ​
9:39:41 AM:   Error location
9:39:41 AM:   In Build command from Netlify app:
9:39:41 AM:   npm run build
9:39:41 AM: ​
9:39:41 AM:   Resolved config
9:39:41 AM:   build:
9:39:41 AM:     command: npm run build
9:39:41 AM:     commandOrigin: ui
9:39:41 AM:     publish: /opt/build/repo/build
9:39:41 AM: Caching artifacts
9:39:41 AM: Started saving node modules
9:39:41 AM: Finished saving node modules
9:39:41 AM: Started saving build plugins
9:39:41 AM: Finished saving build plugins
9:39:41 AM: Started saving pip cache
9:39:41 AM: Finished saving pip cache
9:39:41 AM: Started saving emacs cask dependencies
9:39:41 AM: Finished saving emacs cask dependencies
9:39:41 AM: Started saving maven dependencies
9:39:41 AM: Finished saving maven dependencies
9:39:41 AM: Started saving boot dependencies
9:39:41 AM: Finished saving boot dependencies
9:39:41 AM: Started saving rust rustup cache
9:39:41 AM: Finished saving rust rustup cache
9:39:41 AM: Started saving go dependencies
9:39:41 AM: Finished saving go dependencies
9:39:44 AM: Build failed due to a user error: Build script returned non-zero exit code: 2
9:39:44 AM: Failing build: Failed to build site
9:39:44 AM: Failed during stage 'building site': Build script returned non-zero exit code: 2
9:39:44 AM: Finished processing build request in 1m49.533053684s

Usually, a “build that used to work but doesn’t any more” relates to the fact that you’re building without a cache. Previously, we may have cached node_modules which were imperative to your site building. But, without the cache (usually dropped after a month without a build, or on request) you may encounter errors.

Does your site build locally? Have you ensured that your dependencies are met? Perhaps mtg-shelf is a private module?

This to me looks like you’ve configured eslint to be strict about what it lets through and correctly aborts the build when these “errors” appear. In order to get you building, try disabling the rules no-undef and no-restricted-globals in your eslint config or even better, fix these “problems” in the code!