argoproj / argoproj/argo-cd

Disabling git submodules leads into a mess in reposerver repos when multiple revisions are used form the same repo

Open
#27,872 5 comments 8 reactions 0 assignees View on GitHub
bug triage/pending
Dominant language
Go
Stars
24.2k
Forks
7.8k
Avg merge
1d 14h
Merged PRs (30d)
246

Description

Checklist:

- [x] I've searched in the docs and FAQ for my answer: https://bit.ly/argocd-faq.
- [x] I've included steps to reproduce the bug.
- [x] I've pasted the output of `argocd version`.

**Describe the bug**

We have ~ 300 applications in our argo-cd mostly managed via applicationsets using git generator.
Running with v3.3.10 all applications render correctly. When updating to v3.4.2 50-60 of these applications will change to status Unknown with error messages stating that mandatory values of the helm chart are missing.

```
Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unknown desc = failed to execute helm template command: failed running helm: `helm template . --name-template fagr-bich-dev-sf-admin-server --namespace fagr-bich-dev --kube-version 1.35.1 --set-string starterScsHelm.image.name=weumgmtfagracr.azurecr.io/bison/sf-admin-server --set-string starterScsHelm.image.tag=latest-develop@sha256:c5fadb1fc2e3bfd0b81a497d8e7631418782af238b5310add5f3243005d7747a --values /deploy/argocd/values-dev.yaml --include-crds` failed exit status 1: Error: execution error at (sf-admin-server/charts/starter-scs-helm/templates/serviceaccount.yaml:7:8): A valid .Values.fenaco.maintainer.email list is required! Use --debug flag to render out invalid YAML
```
Unknown application show a popup in the UI `Unable to load data: revision 1.2.0 must be resolved` .

The applications with state Unknown change on every restart of the repo server.

The helm template command is valid an works when executed locally with the same args and helm version.

Setting `reposerver.parallelism.limit: '1'` did not change the behaviour.

Executing

**To Reproduce**

gis submodule is disabled: `reposerver.enable.git.submodule: 'false'`

Setup 2 Application each pointing to the same git repository but a different branch and values file.

```yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app-prod
namespace: argo-cd
spec:
destination:
name: test-cluster
namespace: my-app
project: default
source:
helm:
releaseName: my-app
valueFiles:
- values-prod.yaml
path: .
repoURL: https://git.ch/my-app.git
targetRevision: prod
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app-test
namespace: argo-cd
spec:
destination:
name: test-cluster
namespace: my-app
project: default
source:
helm:
releaseName: my-app
valueFiles:
- values-test.yaml
path: .
repoURL: https://git.ch/my-app.git
targetRevision: test
```

**Expected behavior**

All application should render correctly.

**Screenshots**

UI Popup appearing on Unknown applications
Image

**Version**

```shell
# working version
argocd: v3.3.10
BuildDate: 2026-05-12T20:35:15Z
GitCommit: 4e8d8b5d05451d76412b36122d6803a90b4f406e
GitTreeState: clean
GitTag: v3.3.10
GoVersion: go1.26.3
Compiler: gc
Platform: linux/amd64

# not working version
argocd: v3.4.2
BuildDate: 2026-05-12T20:34:57Z
GitCommit: 0dc6b1b57dd5bb925d5b03c3d09419ab9fb4225e
GitTreeState: clean
GitTag: v3.4.2
GoVersion: go1.26.0
Compiler: gc
Platform: linux/amd64
```

**Logs**

[repo-server.log](https://github.com/user-attachments/files/27792808/repo-server.log)

**Config**

```yaml
data:
applicationsetcontroller.enable.leader.election: 'false'
applicationsetcontroller.log.format: text
applicationsetcontroller.log.level: info
applicationsetcontroller.policy: sync
commitserver.log.format: text
commitserver.log.level: info
controller.diff.server.side: 'true'
controller.log.format: text
controller.log.level: info
dexserver.log.format: text
dexserver.log.level: info
notificationscontroller.log.format: text
notificationscontroller.log.level: info
redis.server: argocd-az-redis:6379
repo.server: argocd-az-repo-server:8081
reposerver.enable.git.submodule: 'false'
reposerver.log.format: text
reposerver.log.level: info
reposerver.parallelism.limit: '5'
server.dex.server: https://argocd-az-dex-server:5556
server.dex.server.strict.tls: 'false'
server.log.format: text
server.log.level: info
server.repo.server.strict.tls: 'false'
```

Contributor guide

Open the contributing guide

Research direction

Start with the attached repo-server.log and the repo-server configuration handling reposerver.enable.git.submodule when two Applications use different revisions of the same repository. Reproduce the two-Application setup with submodules disabled and compare cached revisions and Helm rendering across restarts. Done means both applications consistently render successfully without Unknown status or revision-resolution errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, go, helm, kubernetes
Domain
backend, ci-cd, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.