Skip to content

manifest-generate-paths does not reliably detect diffs during normal refresh #27727

@caiomartin

Description

@caiomartin
  • I've searched in the docs and FAQ for my answer
  • I've included steps to reproduce the bug
  • I've pasted the output of "argocd version"

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

  1. Configure an Application using:

argocd.argoproj.io/manifest-generate-paths

  1. Use a Git monorepo

  2. Commit changes inside the monitored path

  3. Wait for normal refresh/reconciliation

  4. Observe that:

    • revision/hash changes
    • app remains "Synced"
  5. Execute Hard Refresh

  6. 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"

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriage/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