vscode-ng-language-service: TypeError: Cannot read property 'version' of null

Hello all, I’ve been getting this error lately when opening/saving ts files :

Search path: /Users/julien/Documents/web/faucon-rouge/client/apps/front-app/src/app/pages/articles-page
Failed to read JSON file /Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/common/locales/fr.metadata.json
Config file name: /Users/julien/Documents/web/faucon-rouge/client/tsconfig.json
Angular Language Service: 5.0.1
TypeScript: 2.4.2
Error for getTemplateRefrences:
    TypeError: Cannot read property 'version' of null
    at readMetadataFile (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:38646:28)
    at readMetadata (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:38615:25)
    at ReflectorHost.getMetadataFor (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:56526:16)
    at StaticSymbolResolver.getModuleMetadata (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:31804:62)
    at StaticSymbolResolver.hasDecorators (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:31531:46)
    at analyzeFile (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:30078:63)
    at visitFile (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:30057:45)
    at /Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:30063:52
    at Array.forEach (native)
    at _analyzeFilesIncludingNonProgramFiles (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:30063:15)
getTemplateRefrences: 367ms
SERVER ERROR: Cannot read property 'length' of null
TypeError: Cannot read property 'length' of null
    at Project.updateFileMap (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:797:94)
    at Project.updateGraph (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:815:14)
    at Project.finishGraph (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:807:14)
    at ProjectService.openConfigFile (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1634:17)
    at ProjectService.openOrUpdateConfiguredProjectForFile (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1486:41)
    at ProjectService.openClientFile (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1404:23)
    at /Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:135:47
    at TextDocuments.logErrors (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:235:13)
    at /Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:131:74
    at handleNotification (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/vscode-jsonrpc/lib/main.js:353:21)
[Error - 23:07:46] Notification handler 'textDocument/didOpen' failed with message: Cannot read property 'length' of null

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 14
  • Comments: 16 (2 by maintainers)

Most upvoted comments

Temp workaround:

Replace the contents of the server folder in your vscode Angular.ng-template-0.1.7 extension with the files out of the repo:

https://github.com/smasala/angular-language-service-0.17.patch

You’ll usually find your extension folder in Windows under: C:\Users\[username]\.vscode\extensions\Angular.ng-template-0.1.7

This bug is super annoying and it’s not getting any attention for quite some time… 😢

This is my output after downloading @smasala solution and replacing my ~/.vscode/extensions/Angular.ng-template-0.1.7/server folder with the included:

Search path: ./server/services
Failed to read JSON file ./node_modules/@angular/common/locales/nb.metadata.json
Config file name: ./tsconfig.json
Angular Language Service: 5.1.0
TypeScript: 2.6.2
Error for getTemplateRefrences:
    TypeError: Cannot read property 'version' of null
    at readMetadataFile (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:39415:28)
    at readMetadata (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:39384:25)
    at ReflectorHost.getMetadataFor (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:57623:16)
    at StaticSymbolResolver.getModuleMetadata (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:29621:62)
    at StaticSymbolResolver.hasDecorators (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:29323:46)
    at analyzeFile (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:31202:63)
    at visitFile (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:31181:45)
    at ~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:31187:52
    at Array.forEach (native)
    at _analyzeFilesIncludingNonProgramFiles (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:31187:15)
getTemplateRefrences: 6256ms
SERVER ERROR: Cannot read property 'length' of null
TypeError: Cannot read property 'length' of null
    at Project.updateFileMap (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:797:94)
    at Project.updateGraph (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:815:14)
    at Project.finishGraph (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:807:14)
    at ProjectService.openConfigFile (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1634:17)
    at ProjectService.openOrUpdateConfiguredProjectForFile (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1486:41)
    at ProjectService.openClientFile (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1404:23)
    at ~/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:135:47
    at TextDocuments.logErrors (~/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:235:13)
    at ~/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:131:74
    at handleNotification (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/vscode-jsonrpc/lib/main.js:483:43)
[Error - 08:44:00] Notification handler 'textDocument/didOpen' failed with message: Cannot read property 'length' of null

Before switch

Search path: ./server/services
Failed to read JSON file ./node_modules/@angular/common/locales/nb.metadata.json
Config file name: ./tsconfig.json
Angular Language Service: 5.0.0-beta.5
TypeScript: 2.4.2
Error for getTemplateRefrences:
    TypeError: Cannot read property 'version' of null
    at ~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:21442:70
    at Array.find (native)
    at ReflectorHost.BaseAotCompilerHost.readMetadata (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:21442:42)
    at ReflectorHost.BaseAotCompilerHost.getMetadataFor (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:21419:29)
    at StaticSymbolResolver.getModuleMetadata (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:17910:45)
    at StaticSymbolResolver._createSymbolsOf (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:17740:29)
    at StaticSymbolResolver.getSymbolsOf (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:17725:14)
    at ~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:16800:30
    at Array.forEach (native)
    at extractProgramSymbols (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/@angular/language-service/bundles/language-service.umd.js:16799:79)
getTemplateRefrences: 2960ms
SERVER ERROR: Cannot read property 'length' of null
TypeError: Cannot read property 'length' of null
    at Project.updateFileMap (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:797:94)
    at Project.updateGraph (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:815:14)
    at Project.finishGraph (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:807:14)
    at ProjectService.openConfigFile (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1634:17)
    at ProjectService.openOrUpdateConfiguredProjectForFile (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1486:41)
    at ProjectService.openClientFile (~/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1404:23)
    at ~/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:135:47
    at TextDocuments.logErrors (~/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:235:13)
    at ~/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:131:74
    at handleNotification (~/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/vscode-jsonrpc/lib/main.js:353:21)
[Error - 08:50:53] Notification handler 'textDocument/didOpen' failed with message: Cannot read property 'length' of null

The file it complains about in my case (./node_modules/@angular/common/locales/nb.metadata.json) actually does exist. Don’t know why it is looking for it, but this is what it contains: [null]. In this locales folder, I have 516 *.metadata.json files, all identical.

The solution provided here https://github.com/angular/vscode-ng-language-service/issues/192#issuecomment-343920320 solves it, which suggests that this must be an error in @angular/common.

This PR seems to be able to solve it: https://github.com/angular/angular/pull/20557

There is an issue about it in the angular repo as well: https://github.com/angular/angular/issues/20260 Quick summary: A [null] value in the imported [locale].metadata.json file is causing this when you register a new locale. The workaround is to replace the [null] with [] in the [locale].metadata.json.