{
  "slug": "argocd-webhook-refresh-jitter-configuration-f5108fccf92d",
  "title": "argocd webhook refresh jitter configuration",
  "tools": [
    "argocd"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-08-04T08:35:57.000Z",
  "announced_at": "2026-08-04T08:35:57.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When a webhook affects many applications and refresh bursts strain repo-server, configure webhook jitter in `argocd-cm` to spread refreshes over time. Optionally raise the refresh worker count in `argocd-cmd-params-cm` to drain the queue faster after delays expire.",
    "examples": [
      "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: argocd-cm\ndata:\n  webhook.refresh.jitter: \"60s\"\n  webhook.refresh.jitter.threshold: \"10\"",
      "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: argocd-cmd-params-cm\ndata:\n  server.webhook.refresh.workers: \"40\""
    ],
    "gotchas": [
      "Version: v3.5.0",
      "webhook.refresh.jitter (required): Maximum random delay before each webhook-triggered application refresh; `0` disables jitter and is the default. Example: `60s` means a delay from 0 to 60 seconds.",
      "webhook.refresh.jitter.threshold: Minimum affected application count before jitter applies; jitter applies only when the event affects more than the threshold. Default: `10`.",
      "server.webhook.refresh.workers: Concurrent workers processing webhook-triggered application refresh requests. Default: `20`.",
      "--webhook-refresh-workers: `argocd-server` flag for the number of webhook refresh requests processed concurrently; default: `20`.",
      "Jitter is disabled when `webhook.refresh.jitter` is `0` (default).",
      "The default `webhook.refresh.jitter.threshold` is `10`; jitter applies only when more than that many applications are affected.",
      "`server.webhook.refresh.workers` defaults to `20`."
    ]
  },
  "why_it_matters": "Reduce repo-server load when a webhook affects many applications.",
  "before": "Webhook processing enqueued all affected applications at the same instant, causing bursts of repo-server calls and cache stampedes.",
  "sources": [
    "https://github.com/argoproj/argo-cd/releases/tag/v3.5.0",
    "https://github.com/argoproj/argo-cd/pull/25433",
    "https://argo-cd.readthedocs.io/en/release-3.5/operator-manual/high_availability/",
    "https://argo-cd.readthedocs.io/en/release-3.6/operator-manual/server-commands/argocd-server/"
  ],
  "rank": 0.99028,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "wave1b-20261016",
    "verdict_id": "wave1b-20261016:wave1b-20261016-656f1cd605543c63-0:gate",
    "evidence_hash": "07be7454f1632122a2ab9cf03b6223f667e5b8c46a3233bb371b89fc1a018727"
  },
  "review": {
    "draft_hash": "132a5bb870ccf90b4a49eca2aa2ffe3052a112ccb70c989c13279a08967e0007",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "wave1b-20261016:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.99 >= 0.9; 2 needed) and Jev gave 0.69 (>= 0.6 needed)."
  }
}
