Skip to content

OIDC refresh tokens not used in Web UI (re-login triggered instead) #27041

@mandevnull

Description

@mandevnull

Description

Hi,

We are experiencing issues with OIDC authentication in Argo CD Web UI when using GitLab as the OIDC provider.

Summary

Even though refresh tokens are issued by the OIDC provider, Argo CD does not appear to use them. When the ID token expires, Argo CD restarts the full authorization_code flow instead of refreshing the token.

This causes frequent re-authentication and poor user experience, especially with short-lived tokens.

Environment

  • Argo CD version: (e.g. v3.3.x)
  • OIDC Provider: GitLab.com
  • OIDC flow: authorization_code

Configuration

oidc.config: |
    name: GitLab
    issuer: https://gitlab.com
    clientID: xxxxxxx
    clientSecret: $oidc.gitlab.clientSecret
    requestedScopes: ["openid","profile","email"]
    refreshTokenThreshold: 60s

Observed behavior

  • Login works correctly
  • ID token expires quickly (~2 minutes from GitLab)

After expiration:

Argo CD logs show:

failed to verify provider token: oidc: token is expired

Instead of using a refresh token, Argo CD triggers a new:

authorization_code flow login

This results in repeated login redirects

Additional observations

  • Refresh tokens are issued by the provider (verified via debug logs)
  • refreshTokenThreshold does not change behavior
  • Behavior is consistent across sessions

Similar issues reported in:

Expected behavior

  • Argo CD should use the refresh token to obtain a new access/ID token
  • User session should continue without full re-authentication
  • Full login should only happen when refresh token expires

Impact

  • Frequent session interruptions
  • Poor UX with short-lived tokens (e.g. GitLab ~2 min ID token)
  • Not suitable for environments with strict token lifetimes

Question

Is this a known limitation of the Argo CD Web UI, or a bug in the refresh token handling?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcomponent:authIssues related to login, SSO, OIDC, claims, user session and authentication proxy.triage/pendingThis issue needs further triage to be correctly classified

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions