Structural guidance for building reliably on the services AIWatch monitors. These patterns are properties of each service’s architecture, so they hold month to month — the monthly reports’ Observations point here and add only what’s new that month. Read a report’s Observations for this month’s specific failure mode; read this page for how to build against it.

Last reviewed: 2026-07

Jump to: LLM APIs · Voice / transcription · Cross-cutting patterns


LLM APIs

Anthropic (Claude API, Claude Code, claude.ai)

  • Monitor the per-model components individually, not the aggregated incident count across them. Single-model traffic isn’t well represented by the combined total, and retry / failover decisions need per-model granularity.
  • The three surfaces share Anthropic infrastructure and can fail together — you can’t fail over from one Anthropic surface to another. For real redundancy, pair Anthropic with a non-Anthropic provider, not with itself.

Gemini

  • Prefer long-lived keys with a rotation cadence ≥ monthly — newly-created keys have been the affected scope in past incidents.
  • Monitor BOTH gcloud Vertex and AI Studio — they don’t always agree, and direct-API outages often surface on AI Studio first.
  • Gemini incidents are rare but long — design for graceful degradation (retries + a non-streaming fallback path), not fast recovery.

Voice / transcription

Deepgram

  • The Voice Agent carries an upstream-LLM dependency. The longest Deepgram incidents trace back to that surface, so a single-LLM Voice Agent setup takes the full upstream blast radius — configure multiple LLM providers for failover.
  • Isolate the Voice Agent from your core STT/TTS so an upstream-LLM incident can’t take down basic transcription.
  • Real-time transcription is a hot path — route it behind a degradation-aware fallback to a second provider. A latency degradation alone (not only a hard outage) stalls real-time audio.

Cross-cutting patterns

Patterns that apply across services, not tied to one provider.

Retry / timeout tuning (general)

  • Set client-side timeouts to cover the Longest incident column, not the average, so the retry budget survives the worst case rather than the mean.
  • Standard exponential backoff with a sub-minute initial retry absorbs the flap pattern some status pages show (e.g. Together AI, Mistral).