{"record":{"id":"a75d19899d3afdd8","repo":"oracle/graal","slug":"invalid-transport-value-espresso-only-supports","errorCode":null,"errorMessage":"Invalid transport {value}. Espresso only supports dt_socket currently.","messagePattern":"Invalid transport (.+?)\\. Espresso only supports dt_socket currently\\.","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/EspressoOptions.java","lineNumber":447,"sourceCode":"                            }\n                            String portStr = value.substring(colonIndex + 1);\n                            long realValue;\n                            try {\n                                realValue = Long.valueOf(portStr);\n                                if (realValue < 0 || realValue > 65535) {\n                                    throw new IllegalArgumentException(\"Invalid JDWP option, address: \" + value + \". Must be in the 0 - 65535 range.\");\n                                }\n                            } catch (NumberFormatException ex) {\n                                throw new IllegalArgumentException(\"Invalid JDWP option, address: \" + value + \". Port is not a number. Must be a number in the 0 - 65535 range.\");\n                            }\n                            inputPort = (int) realValue;\n                        }\n                        host = inputHost;\n                        port = inputPort;\n                        break;\n                    case \"transport\":\n                        if (!\"dt_socket\".equals(value)) {\n                            throw new IllegalArgumentException(\"Invalid transport \" + value + \". Espresso only supports dt_socket currently.\");\n                        }\n                        transport = value;\n                        break;\n                    case \"server\":\n                        server = yesOrNo(key, value);\n                        break;\n                    case \"suspend\":\n                        suspend = yesOrNo(key, value);\n                        break;\n                    case \"includevirtualthreads\":\n                        boolean includevirtualthreads = yesOrNo(key, value);\n                        if (includevirtualthreads) {\n                            throw new IllegalArgumentException(\"Invalid includevirtualthreads setting \" + value + \". Espresso only supports n currently.\");\n                        }\n                        break;\n                    default:\n                        throw new IllegalArgumentException(\"Invalid JDWP option: \" + key + \". Supported options: 'transport', 'address', 'server', 'suspend', and 'includevirtualthreads=n'.\");\n                }","sourceCodeStart":429,"sourceCodeEnd":465,"githubUrl":"https://github.com/oracle/graal/blob/a66e9ccd1d7bf2552883939aa0788dfd0e294aab/espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/EspressoOptions.java#L429-L465","documentation":"The JDWP converter only accepts transport=dt_socket; Espresso's JDWP implementation has no shared-memory (dt_shmem) or other transport, so any other transport value is rejected immediately.","triggerScenarios":"--java.JDWPOptions=transport=dt_shmem,... or transport=dt_socket2, or omitting/misspelling 'dt_socket' (the comparison is exact and case-sensitive).","commonSituations":"Reusing Windows-oriented HotSpot JDWP examples that use dt_shmem; typos; assuming case-insensitivity after other JDWP keys accepted mixed case.","solutions":["Always specify transport=dt_socket (lowercase, exact).","Remove the transport key only if your GraalVM version defaults it; otherwise keep it explicit.","Do not forward native-agentlib strings containing dt_shmem to Espresso."],"exampleFix":"# before\n--java.JDWPOptions=transport=dt_shmem,server=y\n\n# after\n--java.JDWPOptions=transport=dt_socket,server=y,address=:8000","handlingStrategy":"validation","validationCode":"if (!\"dt_socket\".equals(transport)) throw new ConfigException(\"Only transport=dt_socket is supported\");","typeGuard":"static boolean dtSocketOnly(String t) { return \"dt_socket\".equals(t); }","tryCatchPattern":null,"preventionTips":["Never forward dt_shmem agent strings from Windows JVM examples.","Pin the transport key literally in your debugger template."],"tags":["espresso","graalvm","jdwp","debugging","transport","configuration"],"backgroundTag":null,"analyzedSha":"a66e9ccd1d7bf2552883939aa0788dfd0e294aab","analyzedAt":"2026-08-14T13:58:47.161Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}