Angular Language Server crashes very frequently
For my work I am currently using Webstorm with Angular on a monorepo.
The monorepo has been growing bigger during the last few months, and recently the performance of the ALS has been degrading heavily, whether it's modifying just a single minimal .component.ts or some big one. For example, when I add a new line before existing code, then the following line instantly grays out, and WS have to reinfers the variables and methods again. This used to be almost instant but now it takes up to 10s.
After skimming through the log, I can see warnings like this. After enough failures, it just give up and stop inferring types as a whole unless I manually restart the LS.
2025-11-12 10:43:59,862 [6201531] WARN - #c.i.l.t.t.r.TscRefreshableObject - Failed to load type properties of <Type> {
flags: 524288,
id: 103,
ideTypeCheckerContext: { project=2, typeChecker=423 },
objectFlags: 524292,
resolvedTypeArguments: [
<Type> {
flags: 4,
id: 14,
intrinsicName: "string",
},
],
symbol: <Symbol> {
declarations: [
<Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.collection.d.ts",
},
range: Range(start=Position(line=86, character=40), end=Position(line=112, character=1)),
},
<Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.collection.d.ts",
},
range: Range(start=Position(line=118, character=11), end=Position(line=118, character=31)),
},
<Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.iterable.d.ts",
},
range: Range(start=Position(line=193, character=1), end=Position(line=213, character=1)),
},
<Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts",
},
range: Range(start=Position(line=141, character=1), end=Position(line=145, character=1)),
},
],
escapedName: "Set",
flags: 33554497,
id: 12829,
type: <Type> {
flags: 524288,
id: 104,
objectFlags: 2,
symbol: <Symbol> {
declarations: [
<Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.collection.d.ts",
},
range: Range(start=Position(line=112, character=1), end=Position(line=117, character=1)),
},
<Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.iterable.d.ts",
},
range: Range(start=Position(line=233, character=1), end=Position(line=237, character=1)),
},
<Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts",
},
range: Range(start=Position(line=319, character=1), end=Position(line=322, character=1)),
},
],
escapedName: "SetConstructor",
flags: 33554496,
id: 12828,
},
},
valueDeclaration: <Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.collection.d.ts",
},
range: Range(start=Position(line=118, character=11), end=Position(line=118, character=31)),
},
},
target: <Type> {
flags: 524288,
id: 100,
objectFlags: 6,
resolvedTypeArguments: [
<InstantiableType> {
flags: 262144,
id: 101,
symbol: <Symbol> {…},
},
],
symbol: <Symbol> {
declarations: [
<Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.collection.d.ts",
},
range: Range(start=Position(line=86, character=40), end=Position(line=112, character=1)),
},
<Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.collection.d.ts",
},
range: Range(start=Position(line=118, character=11), end=Position(line=118, character=31)),
},
<Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.iterable.d.ts",
},
range: Range(start=Position(line=193, character=1), end=Position(line=213, character=1)),
},
<Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts",
},
range: Range(start=Position(line=141, character=1), end=Position(line=145, character=1)),
},
],
escapedName: "Set",
flags: 33554497,
id: 12829,
type: <Type> {
flags: 524288,
id: 104,
objectFlags: 2,
symbol: <Symbol> {…},
},
valueDeclaration: <Node> {
parent: <Node> {
fileName: "D:/REDACTED/frontend/node_modules/typescript/lib/lib.es2015.collection.d.ts",
},
range: Range(start=Position(line=118, character=11), end=Position(line=118, character=31)),
},
},
target: <recursive value of class TypeImpl>,
},
} after 20 triesWhat other log would be relevant here?
请先登录再写评论。
One example
When I tab complete disabledIds line, the whole method grays out, everything starts reinferring types from top down, and simply just crash from componentProps line. Closing file and reopen does not help, only restarting LS works.
The last log right after the crash is also somewhat like this:
Could you please share the logs from the language service so we can investigate your problem more thoroughly?
To collect such logs, please add
com.intellij.platform.lsplogging category in Help | Diagnostic Tools | Debug Log Settings…. Then restart the IDE, reproduce the issue, and send us all the IDE logs collected via Help | Collect Logs and Diagnostic Data….Elena Pogorelova forum doesn't allow files so i posted on my server: https://chibi.minhperry.de/emjOSGYiiAKz.zip
Another log where I restart it, it continues to work for around 20 lines and crashes instantly again: https://chibi.minhperry.de/ulN0iufa3JDs.zip
Thank you!
The issue looks related toWEB-75092, please follow it for the updates.