n4nAI

LLM API reliability: 99.9% vs 99.99% uptime in practice

Defines the 99.9 vs 99.99 uptime LLM API gap, explains SLA math, failure modes, and architecture patterns like retry and fallback for reliable inference.

n4n Team4 min read973 words

Audio narration

Coming soon — every post will get a voice note here.

The 99.9 vs 99.99 uptime LLM API distinction describes the difference between a service level objective that tolerates about 43 minutes of downtime per month and one that tolerates just over 4 minutes. For teams shipping inference-backed features, that tenfold reduction in allowed error budget reshapes retry logic, fallback design, and how much you trust a single provider.

What the numbers actually mean

Downtime math

Three nines (99.9%) leaves 0.1% of time unavailable. Over a 30-day month, that is 43.2 minutes. Four nines (99.99%) leaves 0.01%, or 4.32 minutes.

Those minutes are aggregates. You might eat all 43 minutes in a single incident or sip them as sporadic 500s across the month.

What counts as “down” for an LLM API

HTTP 200 with a {"error": "overloaded"} payload is still a failure for your callers. Most SLAs define downtime as sustained inability to return valid completions, often measured at the provider’s edge. They may exclude “partial degradation” where p99 latency triples but requests eventually succeed.

For an LLM gateway, downtime also includes:

  • Provider returns 429 (rate limit) or 503 (unavailable) across a region.
  • Auth or quota service fails.
  • Model-specific errors (e.g., context overflow handled as 400 are not downtime; but engine crash loops are).

How uptime SLAs are measured and enforced

Window and aggregation

Providers publish uptime as a rolling percentage, typically per calendar month. They compute successful requests divided by total, or synthetic health checks every minute. A 99.99% SLA might be measured by a ping endpoint that hits /v1/models, not by your real chat/completions latency.

Credit remedies vs real reliability

When a provider misses 99.99%, you get a service credit—usually 10–30% of monthly spend. That does not refund the user who abandoned your app during the outage. The SLA is a financial gesture, not a guarantee of perceptual reliability.

Why the 99.9 vs 99.99 uptime LLM API gap changes your architecture

At 99.9%, you will see a failed request roughly every 1000 calls. At 99.99%, every 10,000. If you serve 1M completions/day, the former means ~1000 failures/day; the latter ~100. That delta forces different engineering responses.

Retry and backoff basics

A single retry with fixed delay is insufficient. Use jittered exponential backoff. Example in Python:

import asyncio, random
from openai import AsyncOpenAI

client = AsyncOpenAI(base_url="https://api.example-gateway.com/v1", api_key="sk-...")

async def complete_with_retry(messages, max_retries=3):
    for attempt in range(max_retries):
        try:
            return await client.chat.completions.create(model="gpt-4o", messages=messages)
        except Exception as e:
            if attempt == max_retries - 1:
                raise
            sleep = (2 ** attempt) + random.uniform(0, 1)
            await asyncio.sleep(sleep)

This catches transient 5xx/429. It does not fix a provider-wide outage.

Fallback across providers

The real lever is routing to a second model when the first is degraded. The 99.9 vs 99.99 uptime LLM API tradeoff becomes moot if you composite multiple 99.9% providers. Two independent providers yield ~99.9999% aggregate if failures are uncorrelated.

A gateway that performs automatic fallback when a provider is rate-limited or degraded collapses that logic into one endpoint. n4n.ai exposes a single OpenAI-compatible endpoint addressing 240+ models and fails over without client changes. You still need to handle the latency tail.

{
  "model": "auto",
  "messages": [{"role": "user", "content": "Summarize this"}],
  "route": {"fallback": ["anthropic/claude-3.5-sonnet", "meta/llama-3.1-70b"]}
}

If the primary is over quota, the gateway shifts the request. That is how you buy four-nines behavior from three-nines building blocks.

Honoring routing directives

Some gateways let you pin traffic. n4n.ai honors client routing directives and forwards provider cache-control hints, so you can keep cacheable prefix hits on one provider while spilling overflow to another. That protects both cost and latency.

Concrete example: a production chat endpoint

Assume a customer support bot processing 50 requests/minute, 24/7. That is 72,000 requests/day.

At 99.9% uptime, expect 72 failures/day. At 99.99%, 7.2. Users notice the former as occasional “try again” errors; the latter is invisible.

Now simulate a 30-minute provider incident. At 99.9% SLA, that incident alone consumes the entire monthly error budget. Your bot fails 1,500 requests in that window. Without fallback, those are hard errors.

With a fallback gateway, those 1,500 requests reroute. The user sees maybe 200ms extra latency, not a failure.

Failure modes you must still handle

  • Schema drift: fallback model returns different JSON. Validate.
  • Token billing: per-token usage metering matters when you span providers; you need accurate attribution.
  • Context limits: smaller fallback model may reject long context.

Measuring real uptime from the client side

Provider SLAs are not your reality. Instrument your own success rate:

import time, logging

def track_completion(start, success, model):
    dur = time.time() - start
    status = "ok" if success else "fail"
    logging.info(f"completion model={model} status={status} dur_ms={dur*1000:.0f}")

Aggregate daily. If your measured rate is 99.95% but you pay for 99.99%, escalate. Error budgets should be computed on completed, valid responses within your latency SLO (e.g., <10s).

Error budget policy

Decide upfront what happens when the budget burns. Example: if 50% of monthly budget consumed in a day, disable non-critical model features. This is standard SRE practice, absent from most LLM integration docs.

Common misconceptions about LLM API uptime

“Four nines means no errors”

False. SLAs are averages. A 99.99% month can still have a 5-minute total outage where 100% of requests fail. You perceive that as “down” despite the sticker.

“SLA credits cover my lost revenue”

They cover a fraction of API spend. If the outage costs you churned users, the credit is noise.

“My gateway’s uptime is my app’s uptime”

A 99.99% gateway in front of a 99.9% provider inherits the worse number unless it falls back. Composite availability is what your users feel.

“Latency isn’t downtime”

If your timeout is 10s and p99 climbs to 12s, the request fails for the client. Many SLAs exclude latency under 30s. Your users do not.

“All models in a provider are equally available”

A provider may meet 99.99% on gpt-4o but suffer 99.5% on a niche open-weight model. The 99.9 vs 99.99 uptime LLM API claim is often portfolio-wide, not per-model.

Building for the lower denominator

Engineer for 99.9% as the baseline even if you buy 99.99%. Implement:

  1. Idempotent request keys to safely retry.
  2. Circuit breakers per provider.
  3. Fallback model pools with capability parity.
  4. Local cache for deterministic prompts using provider cache-control hints.

The 99.9 vs 99.99 uptime LLM API label is a procurement metric. Resilience is an architecture metric. Treat the SLA as a lower bound, then exceed it with code.

Tagsuptimeslareliabilitygateway

Written by

n4n Team

The team building n4n — a single OpenAI-compatible API in front of 240+ models, with automatic fallback, load balancing and pay-per-token metering.

More from n4n Team →

All uptime & reliability comparison posts →