Skip to content

nu-lsp unexpected error "Other(missing content length)" #12659

@ElDifinitivo

Description

@ElDifinitivo

Summary

The nushell LSP automatically exits upon attempted initialization of a nushell file when using the built-in language configuration for nu-lsp. nushell version being used is 0.101.0. The same occurs when using the below in my user config (set up prior to nushell being included in the default languages.toml).

[[language]]
name = "nu"
shebangs = ["nu"]
rulers = [79]
text-width = 79
language-servers = ["nu-lsp"]

[language-server.nu-lsp]
command = "nu"
args = ["--lsp"]

Reproduction Steps

Helix log

~/.cache/helix/helix.log
2025-01-24T08:56:04.664 globset [DEBUG] glob converted to regex: Glob { glob: "*/Dockerfile.*", re: "(?-u)^.*/Dockerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('D'), Literal('o'), Literal('c'), Literal('k'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2025-01-24T08:56:04.664 globset [DEBUG] glob converted to regex: Glob { glob: "*/dockerfile.*", re: "(?-u)^.*/dockerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('d'), Literal('o'), Literal('c'), Literal('k'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2025-01-24T08:56:04.664 globset [DEBUG] glob converted to regex: Glob { glob: "*/Containerfile.*", re: "(?-u)^.*/Containerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('C'), Literal('o'), Literal('n'), Literal('t'), Literal('a'), Literal('i'), Literal('n'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2025-01-24T08:56:04.665 globset [DEBUG] glob converted to regex: Glob { glob: "*/containerfile.*", re: "(?-u)^.*/containerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('c'), Literal('o'), Literal('n'), Literal('t'), Literal('a'), Literal('i'), Literal('n'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2025-01-24T08:56:04.665 globset [DEBUG] glob converted to regex: Glob { glob: "*/.*ignore", re: "(?-u)^.*/\\..*ignore$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('.'), ZeroOrMore, Literal('i'), Literal('g'), Literal('n'), Literal('o'), Literal('r'), Literal('e')]) }
2025-01-24T08:56:04.665 globset [DEBUG] glob converted to regex: Glob { glob: "*/BUILD.*", re: "(?-u)^.*/BUILD\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('B'), Literal('U'), Literal('I'), Literal('L'), Literal('D'), Literal('.'), ZeroOrMore]) }
2025-01-24T08:56:04.665 globset [DEBUG] glob converted to regex: Glob { glob: "*/.env.*", re: "(?-u)^.*/\\.env\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('.'), Literal('e'), Literal('n'), Literal('v'), Literal('.'), ZeroOrMore]) }
2025-01-24T08:56:04.665 globset [DEBUG] glob converted to regex: Glob { glob: "*/.envrc.*", re: "(?-u)^.*/\\.envrc\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('.'), Literal('e'), Literal('n'), Literal('v'), Literal('r'), Literal('c'), Literal('.'), ZeroOrMore]) }
2025-01-24T08:56:04.665 globset [DEBUG] glob converted to regex: Glob { glob: "*/conf/*/*.{inc,conf}", re: "(?-u)^.*/conf/.*/.*\\.(?:conf|inc)$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('c'), Literal('o'), Literal('n'), Literal('f'), Literal('/'), ZeroOrMore, Literal('/'), ZeroOrMore, Literal('.'), Alternates([Tokens([Literal('c'), Literal('o'), Literal('n'), Literal('f')]), Tokens([Literal('i'), Literal('n'), Literal('c')])])]) }
2025-01-24T08:56:04.665 globset [DEBUG] glob converted to regex: Glob { glob: "*/Jenkinsfile.*", re: "(?-u)^.*/Jenkinsfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('J'), Literal('e'), Literal('n'), Literal('k'), Literal('i'), Literal('n'), Literal('s'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2025-01-24T08:56:04.665 globset [DEBUG] built glob set; 1 literals, 0 basenames, 0 extensions, 0 prefixes, 145 suffixes, 11 required extensions, 10 regexes
2025-01-24T08:56:04.705 mio::poll [TRACE] registering event source with poller: token=Token(94765169717760), interests=READABLE | WRITABLE
2025-01-24T08:56:04.705 mio::poll [TRACE] registering event source with poller: token=Token(94765170610432), interests=READABLE | WRITABLE
2025-01-24T08:56:04.705 mio::poll [TRACE] registering event source with poller: token=Token(94765170373888), interests=READABLE | WRITABLE
2025-01-24T08:56:04.705 mio::poll [TRACE] registering event source with poller: token=Token(94765171044096), interests=READABLE
2025-01-24T08:56:04.705 helix_view::editor [DEBUG] editor status: Loaded 1 file.
2025-01-24T08:56:04.706 mio::poll [TRACE] registering event source with poller: token=Token(94765171041664), interests=READABLE | WRITABLE
2025-01-24T08:56:04.706 mio::poll [TRACE] registering event source with poller: token=Token(94765171151360), interests=READABLE | WRITABLE
2025-01-24T08:56:04.706 mio::poll [TRACE] registering event source with poller: token=Token(0), interests=READABLE
2025-01-24T08:56:04.706 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE
2025-01-24T08:56:04.706 helix_lsp::transport [INFO] nu-lsp -> {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"general":{"positionEncodings":["utf-8","utf-32","utf-16"]},"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dataSupport":true,"disabledSupport":true,"isPreferredSupport":true,"resolveSupport":{"properties":["edit","command"]}},"completion":{"completionItem":{"deprecatedSupport":true,"insertReplaceSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":true,"tagSupport":{"valueSet":[1]}},"completionItemKind":{}},"formatting":{"dynamicRegistration":false},"hover":{"contentFormat":["markdown"]},"inlayHint":{"dynamicRegistration":false},"publishDiagnostics":{"tagSupport":{"valueSet":[1,2]},"versionSupport":true},"rename":{"dynamicRegistration":false,"honorsChangeAnnotations":false,"prepareSupport":true},"signatureHelp":{"signatureInformation":{"activeParameterSupport":true,"documentationFormat":["markdown"],"parameterInformation":{"labelOffsetSupport":true}}}},"window":{"workDoneProgress":true},"workspace":{"applyEdit":true,"configuration":true,"didChangeConfiguration":{"dynamicRegistration":false},"didChangeWatchedFiles":{"dynamicRegistration":true,"relativePatternSupport":false},"executeCommand":{"dynamicRegistration":false},"fileOperations":{"didRename":true,"willRename":true},"inlayHint":{"refreshSupport":false},"symbol":{"dynamicRegistration":false},"workspaceEdit":{"documentChanges":true,"failureHandling":"abort","normalizesLineEndings":false,"resourceOperations":["create","rename","delete"]},"workspaceFolders":true}},"clientInfo":{"name":"helix","version":"25.01.1 (e7ac2fcd)"},"processId":15948,"rootPath":"/home/ElDifinitivo/lib/nushell","rootUri":null,"workspaceFolders":[]},"id":0}
2025-01-24T08:56:04.706 helix_tui::backend::crossterm [DEBUG] The keyboard enhancement protocol is supported in this terminal (checked in 217.789µs)
2025-01-24T08:56:04.741 helix_lsp::transport [ERROR] Exiting nu-lsp after unexpected error: Other(missing content length

Stack backtrace:
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: <unknown>
  10: <unknown>
  11: <unknown>
  12: <unknown>
  13: <unknown>
  14: start_thread
             at ./nptl/pthread_create.c:447:8
  15: clone3
             at /builddir/glibc-2.39/misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:78)
2025-01-24T08:56:04.770 mio::poll [TRACE] deregistering event source from poller
2025-01-24T08:56:04.770 helix_lsp [ERROR] failed to initialize language server: server closed the stream
2025-01-24T08:56:04.770 helix_term::application [DEBUG] received editor event: LanguageServerMessage((LanguageServerId(1v1), Notification(Notification { jsonrpc: None, method: "exit", params: None })))
2025-01-24T08:56:04.770 helix_view::editor [DEBUG] editor status: Language server exited
2025-01-24T08:56:04.770 helix_lsp::file_event [DEBUG] Removing LSP client: 1v1
2025-01-24T08:56:04.804 helix_term::application [DEBUG] received editor event: Redraw
2025-01-24T08:56:04.919 helix_term::application [DEBUG] received editor event: IdleTimer
2025-01-24T08:56:05.091 helix_term::application [DEBUG] received editor event: Redraw

Platform

Linux

Terminal Emulator

alacritty 0.15.0

Installation Method

XBPS (void package manager)

Helix Version

helix 25.01.1 (e7ac2fc)

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions