Skip to content

Blank page when accessing Argo CD behind Gateway API on a subpath (/argo) with server.basehref and server.rootpath #3921

@Raksha-CPU

Description

@Raksha-CPU

Describe the bug

I am deploying Argo CD using argo-helm 8.0.0 with Argo CD v3.4.1 on AKS behind NGINX Gateway Fabric (Gateway API). Argo CD is exposed under a subpath:

https://.com/argo/

The Argo CD backend APIs are reachable and return valid responses, but the UI consistently renders a blank page in the browser.

The issue occurs regardless of whether local admin authentication or Microsoft Entra ID OIDC SSO is enabled.

Related helm chart

argo-cd

Helm chart version

8.0.0

To Reproduce

Environment
Argo CD version: v3.4.1
Helm chart: argo-helm argo-cd-8.0.0
Kubernetes: AKS
Gateway: NGINX Gateway Fabric (Gateway API HTTPRoute)
Authentication: Tested with both:
Local admin login only (admin.enabled=true, Dex/OIDC disabled).
Microsoft Entra ID OIDC SSO enabled.
The issue occurs in both scenarios.

Problem

I am deploying Argo CD behind a Gateway API HTTPRoute under a subpath:

https:///argo/

The backend API endpoints are reachable and return valid responses, but the UI consistently renders a blank page.

Configuration
Helm values
server:
extraArgs:

  • --rootpath=/argo
  • --basehref=/argo/
    service:
    type: ClusterIP
    configs:
    cm:
    "admin.enabled": "true"
    url: ".com/argo/"

params:
"server.basehref": "/argo/"
"server.rootpath": "/argo"
"server.insecure": "true"

HTTPRoute
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: argocd-argocd
namespace: ch-ns-dev-argocd
labels:
app.kubernetes.io/name: argocd
app.kubernetes.io/part-of: argocd
spec:
parentRefs:

  • name: gateway-platform
    namespace: nginx-gateway
    sectionName: https
    hostnames:
  • .com
    rules:
  • matches:
  • path:
    type: PathPrefix
    value: /argo
    filters:
  • type: URLRewrite
    urlRewrite:
    path:
    type: ReplacePrefixMatch
    replacePrefixMatch: /argo
    backendRefs:
  • name: argocd-server
    namespace: ch-ns-dev-argocd
    port: 80

I have tested both:

Gateway API URL rewrite disabled.
Gateway API URL rewrite enabled (ReplacePrefixMatch: "/", i.e. /argo -> /).

Verification
argocd-cmd-params-cm

The generated ConfigMap contains:

server.basehref: /argo/
server.rootpath: /argo
server.insecure: "true"

Deployment

The argocd-server deployment receives:

ARGOCD_SERVER_BASEHREF
ARGOCD_SERVER_ROOTPATH
ARGOCD_SERVER_INSECURE

via environment variables.

Browser behavior
UI renders a blank page.
Browser developer console shows JavaScript errors.
Issue persists after clearing cache.
Issue persists in Incognito mode and a completely fresh browser profile.
Troubleshooting already performed

I have tested all of the following combinations:

server.basehref enabled/disabled.
server.rootpath enabled/disabled.
server.extraArgs vs only using configs.params.
Gateway API URL rewrite enabled and disabled.
Local admin authentication only.
Microsoft Entra ID OIDC SSO enabled.
server.basehref and server.rootpath with and without trailing slashes:
/argo
/argo/
url configured as:
https:///argo
https:///argo/

Expected behavior

Expected Behavior

Argo CD should successfully render the UI when accessed under a subpath (/argo) behind Gateway API, and the login page should be displayed instead of a blank page.

Screenshots

Image

Additional context

Is expected behavior in Argo CD v3.4.1 even when server.basehref=/argo/ is configured?
Is there a known issue or regression affecting subpath deployments with argo-helm 8.0.0 / Argo CD v3.4.1?
Is there a recommended configuration for using Argo CD behind NGINX Gateway Fabric (Gateway API) with a subpath such as /argo?

Any guidance or known working configuration would be greatly appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions