--- pattern_id: PAT-003 title: "1Password CLI rate-limit is account-level — stop ESO, wait 1 hour" category: tooling severity: high status: active first_observed: 2026-07 last_updated: 2026-08-30 related_systems: [rke2-kubernetes] related_solution_docs: - docs/solutions/architecture/2026-07-24-1password-account-level-rate-limit.md - docs/solutions/bug-fixes/2026-07-14-1password-token-telegram-corruption.md related_skills: [1password-cli] --- # 1Password CLI rate-limit is account-level — stop ESO, wait 1 hour ## Symptom All 1Password CLI (`op`) calls suddenly fail with rate-limit errors. This affects both Hermes tools and ExternalSecrets Operator (ESO) in K8s simultaneously. The outage lasts approximately 1 hour. ## Root Cause The 1Password CLI enforces rate limits at the **account level**, not per-token or per-client. When ESO polls aggressively (multiple SecretStores + frequent sync intervals), it exhausts the quota for the ENTIRE account, blocking all other `op` callers including Hermes automation. ## Mitigation 1. **Stop ESO immediately** — scale down the ESO deployment to halt API calls: ```bash kubectl scale deploy -n external-secrets external-secrets-operator --replicas=0 ``` 2. **Wait 1 hour** — the rate limit resets automatically. No polling needed. 3. **Resume ESO** with reduced polling frequency afterward ## Prevention - Reduce ESO `refreshInterval` to 10+ minutes (not the default 1 minute) - Limit the number of SecretStores that reference 1Password - Consider caching secrets locally to reduce API pressure - Never run `op` in tight loops — always add delays for batch operations ## Evidence - Hit twice: Jul 2026 (initial discovery) and during token corruption investigation - Solution doc: `docs/solutions/architecture/2026-07-24-1password-account-level-rate-limit.md` - MEMORY.md entry: "1P CLI:3 vaults R/W. Rate-limit=acct-level. Stop ESO, wait 1hr, no polling."