Describe the bug
Applications using:
argocd.argoproj.io/manifest-generate-paths
do not reliably detect diffs during normal refresh operations in monorepo environments.
Argo CD correctly updates the application revision/hash after commits, but the application still remains in "Synced" state.
The correct diff is only detected after performing a Hard Refresh.
This issue is happening in large monorepo environments using Helm + AVP CMP plugin.
The affected applications have Auto-Sync disabled.
The annotation improves performance significantly by reducing unnecessary manifest generation and reconciliation load, but appears to introduce cache/diff consistency issues.
Official docs:
To Reproduce
- Configure an Application using:
argocd.argoproj.io/manifest-generate-paths
-
Use a Git monorepo
-
Commit changes inside the monitored path
-
Wait for normal refresh/reconciliation
-
Observe that:
- revision/hash changes
- app remains "Synced"
-
Execute Hard Refresh
-
Observe the application finally becoming "OutOfSync"
Expected behavior
After changes inside the configured "manifest-generate-paths":
- Normal refresh should detect the new diff
- The application should become "OutOfSync"
Screenshots
Can provide if needed.
Version
argocd: v3.2.1
Environment
- Git monorepo
- Helm
- AVP CMP Plugin
- Multiple repo-server replicas
- Multiple application-controller replicas
Environment scale:
- ~2k applications
- ~200 clusters
Additional context
We also evaluated:
- "argocd.argoproj.io/refresh: hard"
- "argocd.argoproj.io/compare-options"
- "argocd.argoproj.io/sync-options"
"refresh: hard" works only as an operational workaround because it invalidates repo-server caches and increases load significantly at scale.
The issue appears related to:
- manifest cache invalidation
- repo-server cache behavior
- diff generation during normal refresh
- interaction between CMP plugins and "manifest-generate-paths"
Describe the bug
Applications using:
argocd.argoproj.io/manifest-generate-paths
do not reliably detect diffs during normal refresh operations in monorepo environments.
Argo CD correctly updates the application revision/hash after commits, but the application still remains in "Synced" state.
The correct diff is only detected after performing a Hard Refresh.
This issue is happening in large monorepo environments using Helm + AVP CMP plugin.
The affected applications have Auto-Sync disabled.
The annotation improves performance significantly by reducing unnecessary manifest generation and reconciliation load, but appears to introduce cache/diff consistency issues.
Official docs:
To Reproduce
argocd.argoproj.io/manifest-generate-paths
Use a Git monorepo
Commit changes inside the monitored path
Wait for normal refresh/reconciliation
Observe that:
Execute Hard Refresh
Observe the application finally becoming "OutOfSync"
Expected behavior
After changes inside the configured "manifest-generate-paths":
Screenshots
Can provide if needed.
Version
argocd: v3.2.1
Environment
Environment scale:
Additional context
We also evaluated:
"refresh: hard" works only as an operational workaround because it invalidates repo-server caches and increases load significantly at scale.
The issue appears related to: