Skip to content

yaml-language-server loads forever and crashes with out of memory error #1190

@brunomueller93

Description

@brunomueller93

Describe the bug

As of recently I didn't have any bugs. I'm not sure what has caused this issue. Suddenly I can't use yaml-language-server anymore.

yaml-language-server keeps loading forever and eventually crashes because it ran out of memory. I have tried it in nvim and also in VS Code.

VS Code loads for a few minutes when trying to use autocomplete in a yaml file. It eventually just stops.

In nvim I get an error saying "LSP Timeout". In the logs I can find the following output:

[WARN][2026-02-22 20:35:41] ...m/lsp/client.lua:875	"The language server yamlls triggers a registerCapability handler for workspace/didChangeConfiguration despite dynamicRegistration set to false. Report upstream, this warning is harmless"
[ERROR][2026-02-22 20:37:13] ...p/_transport.lua:36	"rpc"	"yaml-language-server"	"stderr"	"\n<--- Last few GCs --->\n\n[13004:0x19886000]    33199 ms: Mark-Compact 3896.8 (4022.2) -> 3895.9 (4027.2) MB, pooled: 0 MB, 3466.61 / 0.00 ms  (average mu = 0.333, current mu = 0.105) full hash-table; GC in old space requested\n[13004:0x19886000]    36498 ms: Mark-Compact 3895.9 (4027.2) -> 3895.9 (4026.5) MB, pooled: 1 MB, 3298.05 / 0.00 ms  (average mu = 0.184, current mu = 0.000) full hash-table; GC in old space requested\n\nFATAL ERROR: invalid table size Allocation failed - JavaScript heap out of memory\n----- Native stack trace -----\n\n"
[ERROR][2026-02-22 20:37:13] ...p/_transport.lua:36	"rpc"	"yaml-language-server"	"stderr"	" 1: 0xf4db93 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [node]\n"
[ERROR][2026-02-22 20:37:13] ...p/_transport.lua:36	"rpc"	"yaml-language-server"	"stderr"	" 2: 0x13b24d0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [node]\n"
[ERROR][2026-02-22 20:37:13] ...p/_transport.lua:36	"rpc"	"yaml-language-server"	"stderr"	" 3: 0x13b25bf v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [node]\n"
[ERROR][2026-02-22 20:37:13] ...p/_transport.lua:36	"rpc"	"yaml-language-server"	"stderr"	" 4: 0x164b0a5  [node]\n"
[ERROR][2026-02-22 20:37:13] ...p/_transport.lua:36	"rpc"	"yaml-language-server"	"stderr"	" 5: 0x19828c8  [node]\n"
[ERROR][2026-02-22 20:37:13] ...p/_transport.lua:36	"rpc"	"yaml-language-server"	"stderr"	" 6: 0x1982a72 v8::internal::Handle<v8::internal::EphemeronHashTable> v8::internal::HashTable<v8::internal::EphemeronHashTable, v8::internal::EphemeronHashTableShape>::EnsureCapacity<v8::internal::Isolate, v8::internal::Handle>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::EphemeronHashTable>, int, v8::internal::AllocationType) [node]\n"
[ERROR][2026-02-22 20:37:13] ...p/_transport.lua:36	"rpc"	"yaml-language-server"	"stderr"	" 7: 0x1994ca4 v8::internal::ObjectHashTableBase<v8::internal::EphemeronHashTable, v8::internal::EphemeronHashTableShape>::Put(v8::internal::Isolate*, v8::internal::Handle<v8::internal::EphemeronHashTable>, v8::internal::DirectHandle<v8::internal::Object>, v8::internal::DirectHandle<v8::internal::Object>, int) [node]\n"
[ERROR][2026-02-22 20:37:13] ...p/_transport.lua:36	"rpc"	"yaml-language-server"	"stderr"	" 8: 0x1994e56 v8::internal::JSWeakCollection::Set(v8::internal::DirectHandle<v8::internal::JSWeakCollection>, v8::internal::DirectHandle<v8::internal::Object>, v8::internal::DirectHandle<v8::internal::Object>, int) [node]\n"
[ERROR][2026-02-22 20:37:13] ...p/_transport.lua:36	"rpc"	"yaml-language-server"	"stderr"	" 9: 0x1af25a0 v8::internal::Runtime_WeakCollectionSet(int, unsigned long*, v8::internal::Isolate*) [node]\n10: 0x7f80ede36636 \n"

Looks like for whatever reason it's stuck in a loop and simply eats away at RAM until it crashes.

This is the yaml file I'm trying to edit:

# yaml-language-server: $schema=https://raw.githubusercontent.com/OAI/spec.openapis.org/refs/heads/main/oas/3.1/schema/2025-11-23
openapi: "3.1.0"
info:
  version: 1.0.0
  title: Minimal ping API server
paths:
  /ping:
    get:
      responses:
        "200":
          description: pet response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Pong"
components:
  schemas:
    # base types
    Pong:
      type: object
      required:
        - ping
      properties:
        ping:
          type: string
          example: pong

Expected Behavior

yaml-language-server autocomplete should work immediately within yaml files.

Current Behavior

It loads for a while until it runs out of memory and then crashes.

Steps to Reproduce

  1. Open my yaml file in nvim (LazyVim)
  2. Try to trigger the yaml-language-server by editing or simply saving the file

Environment

Linux (latest Tuxedo OS)
nvim 0.11.4
node v24.9.0 (also tried v25.6.1)
npm 11.6.0 (also tried 11.9.0)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions