microsoft/typescript-go · error
configure request failed: %w
Error message
configure request failed: %w
What it means
RequestConfiguration (server.go:404-438): the client advertised workspace.configuration support, so the server sent a workspace/configuration request asking for the js/ts, typescript, javascript, and editor sections, and that request failed — the client returned a JSON-RPC error, the context was canceled, or the send/response failed (sendClientRequest surfaces 'request failed: <response error>'). The result is defaulted to empty UserPreferences and the error wraps the cause.
Source
Thrown at internal/lsp/server.go:437
}
configs, err := sendClientRequest(ctx, s, lsproto.WorkspaceConfigurationInfo, &lsproto.ConfigurationParams{
Items: []*lsproto.ConfigurationItem{
{
Section: new("js/ts"),
},
{
Section: new("typescript"),
},
{
Section: new("javascript"),
},
{
Section: new("editor"),
},
},
})
if err != nil {
return lsutil.UserPreferences{}, fmt.Errorf("configure request failed: %w", err)
}
configMap := map[string]any{}
for i, config := range configs {
switch i {
case 0:
configMap["js/ts"] = config
case 1:
configMap["typescript"] = config
case 2:
configMap["javascript"] = config
case 3:
configMap["editor"] = config
}
}
s.logger.Logf(
"received options from workspace/configuration request:\njs/ts: %+v\n\ntypescript: %+v\n\njavascript: %+v\n\neditor: %+v\n",
configMap["js/ts"],
configMap["typescript"],View on GitHub (pinned to 1bcfa18d79)
Solutions
- Check the wrapped client error: 'method not found' means a capability/client mismatch — fix the client or stop advertising workspace.configuration in its capabilities.
- If the failure is transient (timeout/cancellation during startup), retry RequestConfiguration once after initialization completes.
- When capabilities don't include Workspace.Configuration, the server falls back to initializationOptions/defaults (server.go:406-419) — ensure clients that can't answer configuration requests don't claim the capability.
- In tests, implement a workspace/configuration handler returning the four sections.
Example fix
// before: client claims configuration support it lacks caps.Workspace.Configuration = true // after: match reality caps.Workspace.Configuration = handlesWorkspaceConfiguration
Defensive patterns
Strategy: retry
Validate before calling
// server-embedding: only claim configuration support if you implement it
func capsMatchImplementation(handlesConfig bool) *lsproto.ClientCapabilities {
caps := baseCapabilities()
caps.Workspace.Configuration = handlesConfig
return caps
}
// client-side handler for workspace/configuration must return exactly 4 items
func onConfiguration(p *lsproto.ConfigurationParams) []any {
out := make([]any, len(p.Items))
for i := range p.Items {
out[i] = sectionConfig(p.Items[i].Section)
}
return out
} Try / catch
prefs, err := client.RequestConfiguration(ctx)
if err != nil {
if ctx.Err() != nil || shuttingDown() {
prefs = lsutil.NewDefaultUserPreferences() // startup race; use defaults
} else if strings.Contains(err.Error(), "method not found") {
prefs = lsutil.NewDefaultUserPreferences() // client capability mismatch
reportClientBug(err)
} else {
// transient: retry once
prefs, err = client.RequestConfiguration(ctx)
if err != nil {
prefs = lsutil.NewDefaultUserPreferences()
}
}
} Prevention
- Never advertise workspace.configuration without implementing the handler.
- Return one configuration value per requested item, in order.
- When capabilities omit workspace.configuration the server falls back to initializationOptions — prefer that path for minimal clients.
- Retry once for transient startup races, and fall back to defaults rather than failing initialization.
When it happens
Trigger: Client rejects workspace/configuration (advertised but not implemented), returns an error for one of the sections, ctx canceled (e.g. during shutdown) while awaiting the response, or the connection dropped. Called during initialization/configuration exchange, so it surfaces from handleInitialized paths.
Common situations: Editors advertising workspace.configuration without implementing it; clients returning errors for unknown configuration sections; timeouts on slow clients during startup; test clients that don't handle configuration requests.
Related errors
- Invalid value for ${name}: ${value}
- forRelease requires setPrerelease unless nativePreviewReleas
- Destination directory does not exist: ${dstDir}
- Unsupported OS: ${os}
- Unsupported ARCH: ${arch}
AI-assisted analysis of microsoft/typescript-go@1bcfa18d79 (2026-08-16).
Data as JSON: /api/errors/71eb9ae9c382f5cf.
Report an issue: GitHub.