argoproj/argo-workflows · error
invalid sso.logoutRedirectUrl: %w
Error message
invalid sso.logoutRedirectUrl: %w
What it means
At ArgoServer construction, logout.ValidateRedirectURL rejected the sso.logoutRedirectUrl from the argo-server config map. The wrapped error explains the specific problem (bad URL, disallowed host); the server refuses to start with SSO enabled and an invalid logout redirect.
Source
Thrown at server/apiserver/argoserver.go:153
func getResourceCacheNamespace(managedNamespace string) string {
if managedNamespace != "" {
return managedNamespace
}
return v1.NamespaceAll
}
func NewArgoServer(ctx context.Context, opts ArgoServerOpts) (Server, error) {
configController := config.NewController(opts.Namespace, opts.ConfigName, opts.Clients.Kubernetes)
log := logging.RequireLoggerFromContext(ctx)
var resourceCache *cache.ResourceCache
ssoIf := sso.NullSSO
if opts.AuthModes[auth.SSO] {
c, err := configController.Get(ctx)
if err != nil {
return nil, err
}
if err = logout.ValidateRedirectURL(c.SSO.LogoutRedirectURL); err != nil {
return nil, fmt.Errorf("invalid sso.logoutRedirectUrl: %w", err)
}
ssoIf, err = sso.New(ctx, c.SSO, opts.Clients.Kubernetes.CoreV1().Secrets(opts.Namespace), opts.BaseHRef, opts.TLSConfig != nil)
if err != nil {
return nil, err
}
if ssoIf.IsRBACEnabled() {
// resourceCache is only used for SSO RBAC
resourceCache = cache.NewResourceCache(opts.Clients.Kubernetes, getResourceCacheNamespace(opts.ManagedNamespace))
resourceCache.Run(ctx.Done())
}
log.Info(ctx, "SSO enabled")
} else {
log.Info(ctx, "SSO disabled")
}
gatekeeper, err := auth.NewGatekeeper(opts.AuthModes, opts.Clients, opts.RestConfig, ssoIf, auth.DefaultClientForAuthorization, opts.Namespace, opts.SSONamespace, opts.Namespaced, resourceCache)
if err != nil {
return nil, err
}View on GitHub (pinned to 35bff19146)
Solutions
- Fix sso.logoutRedirectUrl in the argo-server configmap to a valid absolute URL
- Ensure the URL matches the issuer/allowed hosts requirements for OIDC logout
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/apiserver/argoserver.go:153 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/e4f69ea6d18f4e8e.
Report an issue: GitHub.