language-tools icon indicating copy to clipboard operation
language-tools copied to clipboard

Various features (type awareness, linting, etc) stop working randomly

Open ffxsam opened this issue 1 year ago • 11 comments

Vue - Official extension or vue-tsc version

Official

VSCode version

1.93.1

Vue version

3.5.5

TypeScript version

5.5.4

System Info

System:
    OS: macOS 14.5
    CPU: (12) arm64 Apple M2 Max
    Memory: 32.53 GB / 96.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.14.0 - ~/.local/state/fnm_multishells/66548_1726586633705/bin/node
    npm: 10.8.3 - ~/.local/state/fnm_multishells/66548_1726586633705/bin/npm
    pnpm: 9.10.0 - ~/.local/state/fnm_multishells/66548_1726586633705/bin/pnpm
    bun: 1.1.22 - ~/.bun/bin/bun
  Browsers:
    Chrome: 128.0.6613.138
    Safari: 17.5

package.json dependencies

{
  "dependencies": {
    "@aws-amplify/geo": "^3.0.47",
    "@aws-sdk/client-lambda": "^3.651.1",
    "@aws-sdk/client-s3": "^3.651.1",
    "@aws-sdk/lib-storage": "^3.651.1",
    "@casl/ability": "^6.7.1",
    "@casl/vue": "^2.2.2",
    "@chargebee/chargebee-js-vue-wrapper": "^0.3.2",
    "@codemirror/lang-html": "^6.4.9",
    "@mdi/font": "^7.4.47",
    "@sentry/tracing": "^7.114.0",
    "@sentry/vue": "^8.30.0",
    "@tanstack/vue-query": "^5.56.2",
    "@tiptap/extension-link": "^2.6.6",
    "@tiptap/extension-text-align": "^2.6.6",
    "@tiptap/extension-underline": "^2.6.6",
    "@tiptap/pm": "^2.6.6",
    "@tiptap/starter-kit": "^2.6.6",
    "@tiptap/vue-3": "^2.6.6",
    "@vuepic/vue-datepicker": "^9.0.3",
    "aws-amplify": "^6.6.0",
    "axios": "^1.7.7",
    "axios-retry": "^4.5.0",
    "braintree-web": "^3.107.1",
    "camelcase-keys": "^9.1.3",
    "canvas-confetti": "^1.9.3",
    "change-case": "^5.4.4",
    "chart.js": "^4.4.4",
    "codemirror": "^6.0.1",
    "colord": "^2.9.3",
    "date-fns": "^3.6.0",
    "deep-object-diff": "^1.1.9",
    "filesize": "^10.1.6",
    "gridstack": "^10.3.1",
    "hls.js": "^1.5.15",
    "immutable": "5.0.0-beta.4",
    "js-base64": "^3.7.7",
    "js-beautify": "^1.15.1",
    "keycode": "^2.2.1",
    "lodash-es": "^4.17.21",
    "mitt": "^3.0.1",
    "node-ray": "^2.1.2",
    "peaks.js": "github:reelcrafter/peaks.js",
    "pinia": "^2.2.2",
    "qr-code-styling": "1.6.0-rc.1",
    "snakecase-keys": "^8.0.1",
    "sortablejs": "^1.15.3",
    "tinycolor2": "^1.6.0",
    "uuid": "^10.0.0",
    "vidstack": "^1.12.10",
    "vue": "^3.5.5",
    "vue-chartjs": "^5.3.1",
    "vue-codemirror6": "^1.3.4",
    "vue-router": "^4.4.5",
    "vue3-otp-input": "^0.5.21",
    "vue3-smooth-dnd": "^0.0.6",
    "vuetify": "^3.7.1",
    "waveform-data": "^4.5.0",
    "wavesurfer.js": "^7.8.6",
    "zxcvbn": "^4.4.2"
  },
  "devDependencies": {
    "@aws-amplify/api-graphql": "^4.3.0",
    "@graphql-codegen/cli": "5.0.2",
    "@graphql-codegen/client-preset": "4.3.3",
    "@pinia/testing": "^0.1.5",
    "@playwright/test": "^1.47.1",
    "@rushstack/eslint-patch": "^1.10.4",
    "@sentry/vite-plugin": "^2.22.4",
    "@tsconfig/node20": "^20.1.4",
    "@types/braintree-web": "^3.96.13",
    "@types/canvas-confetti": "^1.6.4",
    "@types/js-beautify": "^1.14.3",
    "@types/jsdom": "^21.1.7",
    "@types/lodash-es": "^4.17.12",
    "@types/lodash.merge": "^4.6.9",
    "@types/node": "^20.14.5",
    "@types/sortablejs": "^1.15.8",
    "@types/uuid": "^10.0.0",
    "@types/validator": "^13.12.1",
    "@types/zxcvbn": "^4.4.5",
    "@vitejs/plugin-vue": "^5.1.3",
    "@vue/eslint-config-prettier": "^9.0.0",
    "@vue/eslint-config-typescript": "^13.0.0",
    "@vue/test-utils": "^2.4.6",
    "@vue/tsconfig": "^0.5.1",
    "dotenv": "^16.4.5",
    "eslint": "^8.57.0",
    "eslint-plugin-vue": "^9.28.0",
    "graphql": "^16.9.0",
    "husky": "^9.1.6",
    "jsdom": "^24.1.3",
    "lint-staged": "^15.2.10",
    "npm-run-all": "^4.1.5",
    "prettier": "^3.3.3",
    "rollup-plugin-visualizer": "^5.12.0",
    "sass": "1.78.0",
    "typescript": "~5.6.2",
    "vite": "^5.4.5",
    "vite-plugin-vuetify": "^2.0.4",
    "vitest": "2.1.1",
    "vue-tsc": "^2.1.6",
    "zen-observable-ts": "^1.1.0"
  }
}

Steps to reproduce

Unknown steps (sporadic misbehavior)

What is expected?

Basic features should work:

  • IntelliSense/autocomplete
  • Linting/type-checking
  • Cmd+Click to jump to definition

What is actually happening?

Randomly, these features stop working. To fix it, one needs to reload VS Code.

Link to minimal reproduction

No response

Any additional comments?

No response

ffxsam avatar Sep 17 '24 18:09 ffxsam

Same Issue here.

Vbeni avatar Sep 17 '24 18:09 Vbeni

Possibly due to tsserver crash, please check the logs and assign more memory.

If still happening please provide a minimal reproduction.

RayGuo-ergou avatar Sep 19 '24 22:09 RayGuo-ergou

Also, the Add Line Comment and Remove Line Comment randomly stops responding, and then randomly starts working again.

I just enabled TS Server logs. If I find anything of note, I will report back.

samheuck avatar Sep 27 '24 19:09 samheuck

Possibly due to tsserver crash, please check the logs and assign more memory.

If still happening please provide a minimal reproduction.

@RayGuo-ergou Could you please provide details on how to check the logs? This is still an issue. We have to do a >reload multiple times per day. I'm not confident we can provide a minimal reproduction, as I'm not sure how the code in our project would have any bearing on this. But I'm happy to provide our project config (tsconfig.json, package.json, etc).

ffxsam avatar Jan 10 '25 18:01 ffxsam

@RayGuo-ergou Please advise on how to check the logs. Which ones, specifically, and where?

ffxsam avatar Jan 30 '25 15:01 ffxsam

Did Output > Vue Language Server report any exceptions?

You can also use typescript.openTsServerLog command to check the typescript logs.

KazariEX avatar Feb 05 '25 03:02 KazariEX

@KazariEX Thanks, that's helpful info! I'll keep an eye on both of those next time the issue occurs.

ffxsam avatar Feb 05 '25 16:02 ffxsam

From the TS server logs, when things stop working:

Err 101929[13:51:25.724] languageId not found for /Volumes/SuperData/Sites/reelcrafter/v2-frontend/src/shared/components/MiniSorter.vue
Err 101930[13:51:25.724] languageId not found for /Volumes/SuperData/Sites/reelcrafter/v2-frontend/src/shared/components/MiniSorter.vue
Err 101931[13:51:25.724] languageId not found for /Volumes/SuperData/Sites/reelcrafter/v2-frontend/src/shared/components/MiniSorter.vue
Info 10193[13:51:25.724] event:
    {"seq":0,"type":"event","event":"suggestionDiag","body":{"file":"/Volumes/SuperData/Sites/reelcrafter/v2-frontend/src/shared/components/MiniSorter.vue","diagnostics":[]}}
Err 101933[13:51:25.726] languageId not found for /Volumes/SuperData/Sites/reelcrafter/v2-frontend/src/shared/components/SortableList.vue

ffxsam avatar Feb 05 '25 19:02 ffxsam

+1, same logs as @ffxsam. I also see this stack trace:

Err 13482 [09:51:35.646] Exception on executing command delayed processing of request 44:

    Cannot read properties of undefined (reading 'snapshot')

    TypeError: Cannot read properties of undefined (reading 'snapshot')
        at Object.get (/Users/snooz/.vscode/extensions/vue.volar-2.2.8/node_modules/vue-typescript-plugin-pack/index.js:1:9606)
        at Object.forEach (/Users/snooz/.vscode/extensions/vue.volar-2.2.8/node_modules/vue-typescript-plugin-pack/index.js:1:9779)
        at forEach.next (<anonymous>)
        at fn (/Users/snooz/.vscode/extensions/vue.volar-2.2.8/node_modules/vue-typescript-plugin-pack/index.js:1:14780)
        at fn.next (<anonymous>)
        at ze (/Users/snooz/.vscode/extensions/vue.volar-2.2.8/node_modules/vue-typescript-plugin-pack/index.js:1:14520)
        at cn (/Users/snooz/.vscode/extensions/vue.volar-2.2.8/node_modules/vue-typescript-plugin-pack/index.js:1:12699)
        at /Users/snooz/.vscode/extensions/vue.volar-2.2.8/node_modules/vue-typescript-plugin-pack/index.js:5:4687
        at Array.map (<anonymous>)
        at Proxy.<anonymous> (/Users/snooz/.vscode/extensions/vue.volar-2.2.8/node_modules/vue-typescript-plugin-pack/index.js:5:4655)
        at IpcIOSession.suggestionCheck (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:193399:75)
        at /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:193465:14
        at MultistepOperation.executeAction (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:192068:9)
        at /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:192041:71
        at IpcIOSession.executeWithRequestId (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:195220:14)
        at Object.executeWithRequestId (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:193115:74)
        at Immediate._onImmediate (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:192041:28)
        at process.processImmediate (node:internal/timers:485:21)

How does anyone get work done like this?

snoozbuster avatar Mar 03 '25 19:03 snoozbuster

@snoozbuster Can you reproduce the operation that caused the error?

KazariEX avatar Mar 04 '25 07:03 KazariEX

@KazariEX when it's happening, it happens any time I open a TS or vue file

snoozbuster avatar Mar 09 '25 20:03 snoozbuster

So how do you make it happen?

KazariEX avatar Mar 10 '25 10:03 KazariEX

It happens randomly. Sometimes as soon as we open a project in VS Code, all cmd+clicks and IntelliSense in .vue files is busted and we have to do a >reload. Sometimes it takes a few hours for it to break.

I ruled out all VS Code extensions - none of them were the root cause.

ffxsam avatar Mar 10 '25 20:03 ffxsam

$300 USD bounty to anyone who can fix this issue. It's still happening on a daily basis, and causing us headaches as ESLint also stops working, so we miss potential issues.

ffxsam avatar May 15 '25 18:05 ffxsam

I'm sure you could just dump the code into ChatGPT and ask it to fix it for you. That should be WAAAAAY cheaper than paying a developer $300.

samheuck avatar May 15 '25 23:05 samheuck

I'm sure you could just dump the code into ChatGPT and ask it to fix it for you. That should be WAAAAAY cheaper than paying a developer $300.

Hilarious! But honestly worth a shot. 😄 Bug bounty on hold for now.

ffxsam avatar May 15 '25 23:05 ffxsam

https://github.com/vuejs/language-tools/wiki/Help-Us-Investigate-Issues-Remotely

KazariEX avatar May 16 '25 03:05 KazariEX

Please update the extension to 3.0. If the problem persists, please provide minimal reproduction or Help Us Investigate Issues Remotely.

johnsoncodehk avatar Jul 05 '25 11:07 johnsoncodehk