argoproj/argo-workflows · error
failure to create events client: %w
Error message
failure to create events client: %w
What it means
DefaultClientForAuthorization wraps the error from constructing the Kubernetes events clientset (eventsv1.NewForConfig) after the REST config has been built from the caller's authorization token. It fires during 'client' auth mode when the merged rest config is unusable for the events client — e.g. malformed host/CA or an invalid token format — aborting the request before the gatekeeper installs per-request clients.
Source
Thrown at server/auth/gatekeeper.go:358
}
func DefaultClientForAuthorization(authorization string, config *rest.Config) (*rest.Config, *servertypes.Clients, error) {
restConfig, err := kubeconfig.GetRestConfig(authorization)
if err != nil {
return nil, nil, fmt.Errorf("failed to create REST config: %w", err)
}
restConfig = mergeServerRestConfig(config, restConfig)
dynamicClient, err := dynamic.NewForConfig(restConfig)
if err != nil {
return nil, nil, fmt.Errorf("failure to create dynamic client: %w", err)
}
wfClient, err := workflow.NewForConfig(restConfig)
if err != nil {
return nil, nil, fmt.Errorf("failure to create workflow client: %w", err)
}
eventsClient, err := events.NewForConfig(restConfig)
if err != nil {
return nil, nil, fmt.Errorf("failure to create events client: %w", err)
}
kubeClient, err := kubernetes.NewForConfig(restConfig)
if err != nil {
return nil, nil, fmt.Errorf("failure to create kubernetes client: %w", err)
}
return restConfig, &servertypes.Clients{
Dynamic: dynamicClient,
Workflow: wfClient,
Events: eventsClient,
Kubernetes: kubeClient,
}, nil
}
func mergeServerRestConfig(argoServerConfig *rest.Config, newConfig *rest.Config) *rest.Config {
newConfig.Burst = argoServerConfig.Burst
newConfig.QPS = argoServerConfig.QPS
newConfig.UserAgent = argoServerConfig.UserAgent
// TO DO: Merge other common configurations,such as RateLimiter.View on GitHub (pinned to 35bff19146)
Solutions
- Check the wrapped error; usually the rest.Config host/CA data is malformed
- Fix server kubeconfig settings
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at server/auth/gatekeeper.go:358 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of argoproj/argo-workflows@35bff19146 (2026-09-03).
Data as JSON: /api/errors/91d185386d3ee2ed.
Report an issue: GitHub.