question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

TS Server fatal error: Maximum call stack size exceeded

See original GitHub issue

Type: Bug

Hope I’ve provided enough information below. The bug manifests as a notification with the text:

The JS/TS language service immediately crashed 5 times. The service will not be restarted.

Observed in VS Code versions:

  • Version: 1.72.1 (Universal)
  • Commit: 129500ee4c8ab7263461ffe327268ba56b9f210d
  • Date: 2022-10-10T17:25:13.482Z (2 days ago)

And:

  • Version: 1.73.0-insider (Universal)
  • Commit: a8108049ab61b970f2ec1839dfb753054e07395e
  • Date: 2022-10-13T05:19:29.769Z (6 hrs ago)

Problem persists when code --disable-extensions is run on either version.

Report below was generated from Insiders release

TypeScript Version: 4.8.4

Steps to reproduce crash

  1. Open VS Code
  2. Open Folder
  3. Open JavaScript file
  4. The JS/TS language services crashes

TS Server Log

https://gist.github.com/shuckster/f56477f7b3fdf1686214c2c8c8309c50

Personal/Company info redacted, but codebase is a mix of both JavaScript and Flow-typed JavaScript.

TS Server Error Stack Server: semantic

RangeError: Maximum call stack size exceeded
    at Object.scanJsxToken (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:12041:30)
    at scanJsxText (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:32328:43)
    at parseJsxOpeningOrSelfClosingElementOrOpeningFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35663:17)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35527:27)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
    at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
    at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
    at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)

VS Code version: Code - Insiders 1.73.0-insider (Universal) (a8108049ab61b970f2ec1839dfb753054e07395e, 2022-10-13T05:19:29.769Z) OS version: Darwin arm64 21.6.0 Modes: Sandboxed: Yes

System Info
Item Value
CPUs Apple M1 Pro (10 x 24)
GPU Status 2d_canvas: enabled
canvas_oop_rasterization: disabled_off
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
metal: disabled_off
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_renderer: enabled_on
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: disabled_off
Load (avg) 8, 7, 5
Memory (System) 32.00GB (6.14GB free)
Process Argv
Screen Reader no
VM 0%
Extensions: none
A/B Experiments
vsliv695:30137379
vsins829:30139715
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30422396
pythontb:30258533
vsc_aacf:30263846
pythonptprofiler:30281269
vshan820:30294714
pythondataviewer:30285072
vscod805cf:30301675
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593:30376534
pythonvs932:30404738
cppdebug:30492333
vsclangdf:30492506
c4g48928:30535728
dsvsc012cf:30540253
pylantcb52:30568093
vscccc:30564267
pyindex848:30577858
nodejswelcome1:30587009

Issue Analytics

  • State:open
  • Created a year ago
  • Comments:7 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
RyanCavanaughcommented, Oct 13, 2022

Oh my. Yeah, unfortunately given the syntax here, TS parses it thinking it’s a massively-nested JSX expression, starting here and continuing to deepen the stack at ~every <T> that follows.

   findIndex:
      & (<T>(
        array: $ReadOnlyArray<T>,
        predicate?: ?Predicate<T>,
        fromIndex?: ?number
      ) => number)
      & (<T>(
        array: void | null,

It looks like the problem starts at the {| block, where the | throws the parser into an expression context. There’s an easy fix - if the token at the start/end of an object type block is |, just issue an “invalid character” error (so people don’t start writing this in TS, for now) and skip it.

1reaction
shuckstercommented, Oct 13, 2022

I presume this is unlikely to affect the outcome of this issue, but just to follow-up: Opening lodash_v4.x.x.js in a new editor, then running “Developer: Restart Extension Host”, will also cause the crash even after adding ./flow-typed to exclude in the jsconfig.json file.

Read more comments on GitHub >

github_iconTop Results From Across the Web

TS Server fatal error: Maximum call stack size exceeded
TS Server fatal error: Maximum call stack size exceeded · Issue #113260 · microsoft/vscode · GitHub.
Read more >
JavaScript RangeError: Maximum Call Stack Size Exceeded
The RangeError: Maximum call stack size exceeded is thrown when a function call is made that exceeds the call stack size. This can...
Read more >
JavaScript Error: Maximum Call Stack Size Exceeded
If you see the “Maximum Call Stack Size Exceeded” error, there's likely a problem with a recursive function within your JavaScript code. More ......
Read more >
javascript - Maximum call stack size exceeded error
It means that somewhere in your code, you are calling a function which in turn calls another function and so forth, until you...
Read more >
Maximum call stack size exceeded Error in TypeScript
The RangeError: Maximum call stack size exceeded occurs when a function is being called so many times that the invocations exceed the call...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found