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

Created on 12 Nov 2017  路  16Comments  路  Source: angular/vscode-ng-language-service

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

Most helpful comment

This bug is super annoying and it's not getting any attention for quite some time... 馃槩

All 16 comments

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.

This bug is super annoying and it's not getting any attention for quite some time... 馃槩

What's the workaround for this?

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]\.vscodeextensionsAngular.ng-template-0.1.7

works fine, thanks for it

Unfortunately @smasala 's workaround does not work for me at all. (Exact same errors)
OS: Deepin (Debian) x64

@bernatgy could it be that your extension is stored elsewhere? Cache? What Angular Language version is it saying in your console where the error is also displayed? It should say 5.1.0.

Same here, @smasala solutions doesn't work for me on vscode for mac

@zoamel It's working fine for me on Mac OS 10.13.2. My VS Code extensions are installed in $HOME/.vscode/extensions

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

@OysteinAmundsen you are right. after a day with the fix the above error appears in my case too.

Tracking with https://github.com/angular/angular/pull/20557. I will close this once an updated language service package is released.

Closing this, since https://github.com/angular/angular/issues/20260 has been closed. Please open a new issue if problem persists.

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

_This action has been performed automatically by a bot._

Was this page helpful?
0 / 5 - 0 ratings