dagger/dagger · error
failed to create telemetry proxy listener: %w
Error message
failed to create telemetry proxy listener: %w
What it means
Wrapped by setupTelemetryProxy when its loopback TCP listener (127.0.0.1:0) cannot be created. The OTLP proxy needs a local port; failure indicates no free ports, a missing loopback interface, or FD exhaustion on the host.
Source
Thrown at internal/cmd/dagger/run.go:226
}
cmdErr = subCmd.Run()
} else {
subCmd.Stdout = stdout
subCmd.Stderr = stderr
cmdErr = subCmd.Run()
}
return cmdErr
})
}
// setupTelemetryProxy creates an OpenTelemetry proxy server and returns
// environment variables so that child processes can export to it.
func setupTelemetryProxy(ctx context.Context) ([]string, error) {
listener, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
return nil, fmt.Errorf("failed to create telemetry proxy listener: %w", err)
}
otelProto := "http/protobuf"
otelEndpoint := "http://" + listener.Addr().String()
mux := http.NewServeMux()
// Handle traces
mux.HandleFunc("/v1/traces", func(w http.ResponseWriter, r *http.Request) {
body, bodyErr := io.ReadAll(r.Body)
if bodyErr != nil {
http.Error(w, bodyErr.Error(), http.StatusBadRequest)
return
}
var req coltracepb.ExportTraceServiceRequest
if unmarshalErr := proto.Unmarshal(body, &req); unmarshalErr != nil {
http.Error(w, unmarshalErr.Error(), http.StatusBadRequest)
returnView on GitHub (pinned to 82ba2681db)
Solutions
- Free file descriptors or ports on the host
- Verify 127.0.0.1 loopback is available
- Skip the proxy (unset telemetry forwarding) if not needed
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at internal/cmd/dagger/run.go:226 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of dagger/dagger@82ba2681db (2026-09-05).
Data as JSON: /api/errors/111dd4952e04d5fe.
Report an issue: GitHub.