Skip to content

DAP: ConfigurationDone request sent with null arguments #14878

@quantonganh

Description

@quantonganh

Summary

I'm trying to debug Java in Helix by:

  • writing a plugin that sends vscode.java.startDebugSession command to LSP according to java-debug
  • starting the app with JDWP debugger agent enabled:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -jar target/gsws-ch7-0.0.1-SNAPSHOT.jar
  • Adding the following config:
[[language]]
name = "java"
language-servers = [ "jdtls" ]
indent = { tab-width = 4, unit = "    " }

[language-server.jdtls]
command = "jdtls-wrapper"
args = ["--jvm-arg=-javaagent:/Users/quantong/.lombok/lombok.jar"]

[language-server.jdtls.config]
java.inlayHints.parameterNames.enabled = "all"
extendedClientCapabilities.classFileContentsSupport = true
bundles = [ "/Users/quantong/.m2/repository/com/microsoft/java/com.microsoft.java.debug.plugin/0.53.2/com.microsoft.java.debug.plugin-0.53.2.jar" ]

[language.debugger]
name = "java-debug"
transport = "stdio"

[[language.debugger.templates]]
name = "connect-to-jdtls-dap"
request = "attach"
args = { hostName = "127.0.0.1", port = "5005" }
  • Connecting to the debug adapter:
:debug-remote 127.0.0.1:12345

However, at the end, Helix sends a configurationDone command with null arguments:

2025-08-30T09:37:00.065 helix_dap::transport [INFO] [1v1] -> DAP {
    "type":"request",
    "seq":3,
    "command":"configurationDone",
    "arguments":null
}

this causes an error on JDTLS side:

2025-08-30T09:37:00.066 helix_lsp::transport [INFO] jdtls <- {
    "jsonrpc":"2.0",
    "method":"window/logMessage",
    "params":{
        "type":1,
        "message":""
        Aug 30, 2025, 9:37:00 AM Error parsing message: com.google.gson.JsonSyntaxException: Expected a com.google.gson.JsonObject but was com.google.gson.JsonNull; at path $.arguments
        Expected a com.google.gson.JsonObject but was com.google.gson.JsonNull; at path $.arguments
        com.google.gson.JsonSyntaxException: Expected a com.google.gson.JsonObject but was com.google.gson.JsonNull; at path $.arguments

According to the DAP spec, configurationDone either:

  • should omit the arguments field, or
  • include it as an empty object

but it should not be null.

Reproduction Steps

I tried this:

  1. hx

I expected this to happen:

Instead, this happened:

Helix log

~/.cache/helix/helix.log
please provide a copy of `~/.cache/helix/helix.log` here if possible, you may need to redact some of the lines

Platform

macOS

Terminal Emulator

wezterm 20250114-162918-c2b3693f

Installation Method

source

Helix Version

helix 25.07.1 (30125e99)

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