Karma: UnhandledRejection: Cannot read property 'range' of undefined

Created on 16 Dec 2020  路  18Comments  路  Source: karma-runner/karma

Karma version 5.2.3
Node version 14.15.2

After running the tests Chrome exits and I get the following error:

ERROR [karma-server]: UnhandledRejection: Cannot read property 'range' of undefined
ERROR [karma-server]: TypeError: Cannot read property 'range' of undefined

I suspect this to be related to #3571, node version 14.15.1 works correctly.

Please let me know if I need to provide more information.

Most helpful comment

downgrading from node v15 to v14.16.0 helped, tests are working now

All 18 comments

I don't think this issue is in Karma core. From #3571 it looks like the issue is in the @angular-devkit\build-angular plugin. I've tested with fresh @angular/cli@11 project and issue is not reproducible. Please consider below options:

  • stick with older Node version
  • upgrade to latest Angular
  • report bug to Angular CLI repository with minimal reproduction if you're also using Angular 9 as in #3571. Angular 9 is an LTS release, so they may issue a fix.
  • debug this issue further and figure out if this is a Node regression, then it should be reported to Node itself (which is likely the case given that it broke in the patch release)

In any case, there is nothing we can do on the Karma core to fix issue in the third-party plugin as we don't develop this plugin.

Happy to re-open if you provide a minimal reproduction showing that this issue is caused by the Karma core.

FWIW I tested locally against 14.15.1 and 14.15.2 so any issue between these versions isn't visible to our tests.

Unfortunately I have the same issue in my test project. Tests work on NodeJS 14.15.1, but fails on 14.15.2 with exception:

UnhandledRejection: Cannot read property 'range' of undefined

@tbprojects Open up karma/lib/server.js and find

this.log.error(`UnhandledRejection: ${error.message || String(error)}`)

Add a line above:

console.error("UnhandledRejection", error.stack || "bah!")

The message should include the stack and that will help us.

@tbprojects Thanks! I'm able to reproduce it using your repository. For some reason it does not reproduce in my freshly-generated Angular CLI 11 project. I'll check what is different tomorrow and post back.

@tbprojects Open up karma/lib/server.js and find

this.log.error(`UnhandledRejection: ${error.message || String(error)}`)

Add a line above:

console.error("UnhandledRejection", error.stack || "bah!")

The message should include the stack and that will help us.

UnhandledRejection TypeError: Cannot read property 'range' of undefined
    at handleRangeHeaders (/node_modules/webpack-dev-middleware/lib/util.js:131:21)
    at processRequest (/node_modules/webpack-dev-middleware/lib/middleware.js:98:19)
    at ready (/node_modules/webpack-dev-middleware/lib/util.js:53:12)
    at handleRequest (/node_modules/webpack-dev-middleware/lib/util.js:182:5)
    at /node_modules/webpack-dev-middleware/lib/middleware.js:64:7
    at new Promise (<anonymous>)
    at middleware (/node_modules/webpack-dev-middleware/lib/middleware.js:63:12)
    at /node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/karma.js:270:13
    at call (/node_modules/connect/index.js:239:7)
    at next (/node_modules/connect/index.js:183:5)
    at /node_modules/karma/lib/web-server.js:24:9
    at call (/node_modules/connect/index.js:239:7)
    at next (/node_modules/connect/index.js:183:5)
    at nullProxy (/node_modules/karma/lib/middleware/proxy.js:86:52)
    at call (/node_modules/connect/index.js:239:7)
    at next (/node_modules/connect/index.js:183:5)

Thanks for the link @wvankuipers. It is indeed a change in behaviour in Node, which lead to a crash of Angular CLI (because of this line).

It looks like Node is going to revert this change in LTS line. So below is the information for people experiencing this issue:

  1. Avoid affected Node version 14.15.2. And avoid 15.x as it is unsupported by both Karma and Angular CLI at the moment.
  2. Subscribe to https://github.com/angular/angular-cli/issues/19644 for updates on Node 15 support in regards of this issue.

@johnjbarton I think we should keep this pinned until fix is released in the next Node version, so people can easily find it and don't open new issues about the same problem.

Ok thanks. Did not know this pinned thing ;-)

  • i also check with Angular CLI @11.x and node v14.15.2 test case run there is no issue in it
  • who want to use node v14.15.2 for angular please update your angular version
  • use command ng update in your angular setup

v 14.15.3 is released https://nodejs.org/en/download/

still happening on v14.15.3

@rattkin I can't reproduce on Node 14.15.3 using test project from https://github.com/karma-runner/karma/issues/3588#issuecomment-747094441. Please double check that you use the mentioned Node version and provide the minimal project producing the error if you still believe that this is a bug.

@devoto13 I upgraded Triton to latest and it is fixed now. Sorry for mistake, the environment that had the problem was not on 14.15.3.
solved.

Same issue appeared again starting from node v15.0.0

@TeaTimeForever Make sure you use the Angular CLI version, where the fix is included.

image

downgrading from node v15 to v14.16.0 helped, tests are working now

Was this page helpful?
0 / 5 - 0 ratings