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

  1. Check the wrapped client error: 'method not found' means a capability/client mismatch — fix the client or stop advertising workspace.configuration in its capabilities.
  2. If the failure is transient (timeout/cancellation during startup), retry RequestConfiguration once after initialization completes.
  3. 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.
  4. 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

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


AI-assisted analysis of microsoft/typescript-go@1bcfa18d79 (2026-08-16). Data as JSON: /api/errors/71eb9ae9c382f5cf. Report an issue: GitHub.