How to fix ArgoCD manifest generation error in Kubernetes

KubernetesINTERMEDIATEHIGHUpdated Dec 6, 2025ยท 174 views

ArgoCD fails to generate application manifests due to missing dependencies, timeout issues, invalid configurations, or plugin failures. The error is cached to prevent repeated failures. Fix by checking Helm chart dependencies, validating file paths, clearing the cache, and reviewing repo-server logs. Manifest generation must complete within the 90-second default timeout.

Quick fix

Fixes ArgoCD manifest generation error

kubectl logs -n argocd deployment/argocd-repo-server --tail=200 | grep <app-name>
  1. Inspect repo-server logs for detailed error
  2. Verify application path exists in Git repository
  3. Fix Helm chart dependencies
  4. Clear the cached error
kubernetes โ€” error
kubectl logs -n argocd deployment/argocd-repo-server --tail=200 | grep <app-name>
ArgoCD manifest generation error

What this error means

A manifest generation error occurs when ArgoCD's repo-server cannot render your Kubernetes manifests from source (Helm, Kustomize, plain YAML, or plugins). The error message is cached to prevent runaway retries that would overload the cluster. This error blocks synchronization because ArgoCD cannot determine what state to apply. Common causes include missing Helm dependencies, incorrect file paths, timeout constraints, invalid resource schemas, and misconfigured plugins or config management tools.

Typical symptoms

  • Application stuck in "OutOfSync" with status showing "Manifest generation error (cached)"
  • Hard refresh doesn't resolve the error (indicates ongoing issue, not transient)
  • Cannot synchronize or deploy application
  • Error message mentions "failed timeout after 90s" or similar duration
  • Plugin sidecar fails or config management plugin (CMP) exits with non-zero code
  • Helm dependency resolution fails or references external repositories
  • Application path doesn't exist or field not declared in Kubernetes schema

Common causes

  1. Helm chart has external dependencies not available in requirements.yaml
  2. Application path specified in ArgoCD application doesn't exist in Git repository
  3. Manifest generation timeout (default 90 seconds) exceeded
  4. Invalid Kubernetes manifest missing apiVersion, kind, or metadata
  5. Config management plugin (CMP) or custom tool returns non-zero exit code
  6. Helm values or kustomization contains invalid syntax or missing required fields
  7. Kubernetes schema doesn't recognize fields used in manifests
  8. Plugin or CMP not properly configured in argocd-cm configmap

How to fix "ArgoCD manifest generation error"

1Inspect repo-server logs for detailed error

The cached error hides the root cause. Find detailed logs:

bash
kubectl logs -n argocd deployment/argocd-repo-server --tail=200 | grep <app-name>

Look for the actual failure message (helm error, timeout, path not found, etc.). This is the real issue to fix.

2Verify application path exists in Git repository

Check that the path specified in your ArgoCD Application matches the Git structure:

bash
# In your Application manifest
spec:
  source:
    repoURL: https://github.com/your-org/repo
    path: apps/my-app  # Must exist in repo

Clone the repo locally and verify:

bash
git clone https://github.com/your-org/repo
ls apps/my-app
# Should see values.yaml, Chart.yaml, or kustomization.yaml
3Fix Helm chart dependencies

If using Helm, verify all dependencies are available:

bash
# Check Chart.yaml for dependencies
cat Chart.yaml | grep -A10 "dependencies:"

# Verify Helm repositories are accessible
helm repo list
helm dependency update

In ArgoCD ConfigMap, configure internal Helm repos only:

yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-cm
data:
  helm.repositories: |
    - name: stable
      url: https://internal-helm-repo.example.com
4Clear the cached error

Once you've fixed the underlying issue, clear the cache:

bash
# Via CLI
argocd app get --hard-refresh <app-name>

# Or via kubectl patch
kubectl patch application <app-name> -n argocd --type merge \
  -p '{"status":{"conditions":[]}}'

ArgoCD will attempt manifest generation again. Check logs to confirm success.

5Increase execution timeout if needed

If manifest generation times out (especially for large Helm charts), increase the timeout:

bash
kubectl edit configmap argocd-cmd-params-cm -n argocd

Add or update:

yaml
argocd.exec.timeout: 3m  # Default is 1m30s (90s)

Restart repo-server to apply:

bash
kubectl rollout restart deployment/argocd-repo-server -n argocd
6Validate Kubernetes manifests syntax

Ensure manifests have required Kubernetes fields:

bash
# All manifests must have apiVersion, kind, metadata
grep -E "^apiVersion:|^kind:|^metadata:" your-manifest.yaml

# Use kubeval to validate
kubectl apply -f manifests/ --dry-run=client --validate=strict

If ArgoCD complains about unknown fields, your Kubernetes version may not support them. Check ArgoCD's hardcoded schema version.

7Check config management plugin configuration

If using custom plugins or plugins like argocd-vault-plugin:

bash
# View CMP configuration
kubectl get configmap argocd-cmp-plugins -n argocd -o yaml

# Verify plugin script has execute permissions and valid syntax
# Test plugin locally if possible

Ensure the plugin spec in Application is correct:

yaml
spec:
  source:
    plugin:
      name: my-plugin  # Must match plugin defined in argocd-cm

Advanced notes

Manifest generation errors are often environmental (missing repos, network timeouts, disk space). Check argocd-repo-server Pod resource limits and /tmp disk usage: kubectl exec -it pod/argocd-repo-server-xxx -n argocd -- df -h /tmp. If using monorepos with 50+ applications, single repo-server instance may serialize manifest generation, causing slowdowns. Add replicas or split repos. For CI/CD integration, always test manifest generation locally before pushing: kustomize build path/ or helm template release mychart -f values.yaml. URL schemes like "secrets://" are now restricted; use proper plugin configuration instead. Always check kubectl version compatibility with your manifests.

Frequently asked questions

What does "ArgoCD manifest generation error" mean?
A manifest generation error occurs when ArgoCD's repo-server cannot render your Kubernetes manifests from source (Helm, Kustomize, plain YAML, or plugins). The error message is cached to prevent runaway retries that would overload the cluster. This error blocks synchronization because ArgoCD cannot determine what state to apply.
How do I fix "ArgoCD manifest generation error"?
ArgoCD fails to generate application manifests due to missing dependencies, timeout issues, invalid configurations, or plugin failures. The error is cached to prevent repeated failures. Fix by checking Helm chart dependencies, validating file paths, clearing the cache, and reviewing repo-server logs. Manifest generation must complete within the 90-second default timeout.
What causes "ArgoCD manifest generation error"?
Helm chart has external dependencies not available in requirements.yaml Application path specified in ArgoCD application doesn't exist in Git repository Manifest generation timeout (default 90 seconds) exceeded
Is the "ArgoCD manifest generation error" error serious?
Yes. This is a high-severity error that usually blocks work until it is fixed, but the steps above resolve it.

Official resources & further reading