Checklist:
Describe the bug
After upgrading to Argo CD v3.4.1, the Parameters tab in the application details panel no longer renders Helm parameters for applications whose spec.source.helm.valueFiles reference a path outside the chart directory (using an absolute repo-root path, e.g. /path/to/values.yaml).
Instead of the expected Helm section (with value file selection and parameter list), the tab falls back to rendering the Directory section (showing DIRECTORY RECURSE, TOP-LEVEL ARGUMENTS, EXTERNAL VARIABLES).
The application is otherwise fully functional:
status.sourceType is correctly reported as Helm.
spec.source.helm.parameters is populated correctly on the live Application object (verified via kubectl get application <app> -o yaml).
- Manifest generation succeeds and the application syncs/heals correctly.
- The Manifest tab shows the full Helm source config with all parameters.
- The application card displays the correct
N parameter override(s) badge.
argocd-repo-server logs confirm the GetAppDetails call returns the populated Helm source (with ValueFiles, Parameters).
Only the UI Parameters tab is broken. Restarting argocd-repo-server, argocd-server, and flushing argocd-redis does not fix the issue. Reproducible across browsers (regular and incognito).
Downgrading to v3.3.9 (chart 9.5.11) restores the expected behavior — the Parameters tab renders the Helm section with VALUES FILES, PARAMETERS, etc.
For comparison, Kustomize applications in the same Argo CD instance render their Parameters tab correctly in v3.4.1 (showing KUSTOMIZE → VERSION, IMAGES). This appears to be Helm-specific.
To Reproduce
-
Install Argo CD v3.4.1 via the official Argo Helm chart (argo/argo-cd chart 9.5.12 or 9.5.13, both ship app version v3.4.1).
-
Create an Application with the following shape:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: example-helm
namespace: argocd
spec:
project: default
source:
repoURL: https://example.com/my-repo.git
targetRevision: main
path: charts/my-chart
helm:
valueFiles:
- /overlays/prod/values.yaml # absolute path, outside chart dir
destination:
server: https://kubernetes.default.svc
namespace: my-namespace
The chart at charts/my-chart is a self-authored Helm v2 chart in the same Git repository as the value files, referenced via spec.source.path (not via spec.source.chart against a Helm registry). Standard layout:
charts/my-chart/
├── Chart.yaml # apiVersion: v2, type: application
├── values.yaml
└── templates/
└── ...
The value file referenced by valueFiles lives in the same Git repository but outside the chart directory (e.g. under overlays/prod/), addressed by an absolute path from the repo root.
-
Optionally add helm.parameters (e.g. via argocd app set or argocd-image-updater with write-back-method: argocd).
-
In the UI, open the application and click the Parameters tab.
Expected behavior
The Parameters tab should render the Helm section, showing:
- The list of value files (
VALUES FILES)
- All
helm.parameters entries with their names and values
- An Edit button that allows modifying parameters
This is what v3.3.9 does for the same Application spec.
Actual behavior
The Parameters tab renders the Directory section instead:
DIRECTORY RECURSE: false
TOP-LEVEL ARGUMENTS (empty)
EXTERNAL VARIABLES (empty)
The Helm parameters are not visible or editable from the UI, even though they are present and active on the Application object.
Screenshots
- The application card with the
N parameter override(s) badge.
- The broken Parameters tab showing the Directory section.
- The Manifest tab showing the populated
helm.parameters for the same app.
- The same Parameters tab on v3.3.9 showing the correct Helm section.
Version
Argo CD v3.4.1 (image quay.io/argoproj/argocd:v3.4.1), installed via the
official Argo Helm chart:
- Repo:
https://argoproj.github.io/argo-helm
- Chart:
argo-cd
- Chart version:
9.5.12 (also reproduces on 9.5.13)
- App version:
v3.4.1
Downgrading the chart to 9.5.11 (app version v3.3.9) restores the expected Parameters tab behavior, with no other changes to the Application manifests or the chart values.
Logs
argocd-repo-server correctly returns the Helm source on cache hit:
time="..." level=info msg="manifest cache hit: &ApplicationSource{
RepoURL:https://example.com/my-repo.git,
Path:charts/my-chart,
TargetRevision:main,
Helm:&ApplicationSourceHelm{
ValueFiles:[/overlays/prod/values.yaml],
Parameters:[]HelmParameter{
HelmParameter{Name:image.name,Value:...,ForceString:true,},
HelmParameter{Name:image.tag,Value:...,ForceString:true,},
HelmParameter{Name:autoscaling.minReplicas,Value:4,ForceString:false,},
},
...
},
Kustomize:nil,
Directory:nil,
Plugin:nil,
...
}/<revision-hash>"
i.e. the source is correctly identified as Helm at the repo-server layer; the regression appears to be in how argocd-server/UI consumes the appDetails response in v3.4.1 for sources with out-of-chart valueFiles.
Thanks for looking into it :)
Checklist:
argocd version.Describe the bug
After upgrading to Argo CD v3.4.1, the Parameters tab in the application details panel no longer renders Helm parameters for applications whose
spec.source.helm.valueFilesreference a path outside the chart directory (using an absolute repo-root path, e.g./path/to/values.yaml).Instead of the expected Helm section (with value file selection and parameter list), the tab falls back to rendering the Directory section (showing
DIRECTORY RECURSE,TOP-LEVEL ARGUMENTS,EXTERNAL VARIABLES).The application is otherwise fully functional:
status.sourceTypeis correctly reported asHelm.spec.source.helm.parametersis populated correctly on the live Application object (verified viakubectl get application <app> -o yaml).N parameter override(s)badge.argocd-repo-serverlogs confirm theGetAppDetailscall returns the populated Helm source (withValueFiles,Parameters).Only the UI Parameters tab is broken. Restarting
argocd-repo-server,argocd-server, and flushingargocd-redisdoes not fix the issue. Reproducible across browsers (regular and incognito).Downgrading to v3.3.9 (chart
9.5.11) restores the expected behavior — the Parameters tab renders the Helm section withVALUES FILES,PARAMETERS, etc.For comparison, Kustomize applications in the same Argo CD instance render their Parameters tab correctly in v3.4.1 (showing
KUSTOMIZE→VERSION,IMAGES). This appears to be Helm-specific.To Reproduce
Install Argo CD v3.4.1 via the official Argo Helm chart (
argo/argo-cdchart9.5.12or9.5.13, both ship app versionv3.4.1).Create an Application with the following shape:
The chart at
charts/my-chartis a self-authored Helm v2 chart in the same Git repository as the value files, referenced viaspec.source.path(not viaspec.source.chartagainst a Helm registry). Standard layout:The value file referenced by
valueFileslives in the same Git repository but outside the chart directory (e.g. underoverlays/prod/), addressed by an absolute path from the repo root.Optionally add
helm.parameters(e.g. viaargocd app setorargocd-image-updaterwithwrite-back-method: argocd).In the UI, open the application and click the Parameters tab.
Expected behavior
The Parameters tab should render the Helm section, showing:
VALUES FILES)helm.parametersentries with their names and valuesThis is what v3.3.9 does for the same Application spec.
Actual behavior
The Parameters tab renders the Directory section instead:
DIRECTORY RECURSE: falseTOP-LEVEL ARGUMENTS(empty)EXTERNAL VARIABLES(empty)The Helm parameters are not visible or editable from the UI, even though they are present and active on the Application object.
Screenshots
N parameter override(s)badge.helm.parametersfor the same app.Version
Argo CD
v3.4.1(imagequay.io/argoproj/argocd:v3.4.1), installed via theofficial Argo Helm chart:
https://argoproj.github.io/argo-helmargo-cd9.5.12(also reproduces on9.5.13)v3.4.1Downgrading the chart to
9.5.11(app versionv3.3.9) restores the expected Parameters tab behavior, with no other changes to the Application manifests or the chart values.Logs
argocd-repo-servercorrectly returns the Helm source on cache hit:i.e. the source is correctly identified as Helm at the repo-server layer; the regression appears to be in how
argocd-server/UI consumes theappDetailsresponse in v3.4.1 for sources with out-of-chartvalueFiles.Thanks for looking into it :)