NEW/search/lite is live at $0.25 / 1k reqs, beating Parallel turbo 91/100See the battle →
Incident Report / IR-2026-07-001

Service disruption across EU-West infrastructure, July 28 to 30, 2026

Between July 28 and July 30, an upstream compute provider experienced a progressive infrastructure failure that cascaded into Keirolabs EU-West servers. Affected API requests returned zero search results with an incorrect HTTP 200 status code. This document provides the complete root cause analysis, a day-by-day incident timeline, the six remediation measures deployed, and the service credit issued to all paid accounts.

StatusResolved
Incident windowJul 28 to Jul 30
Peak severitySEV-1
Affected regionEU-West
PublishedAugust 1, 2026
Report IDIR-2026-07-001

50% service credit applied to all paid accounts for the next billing cycle

No action required. The credit covers every request across every endpoint for one full billing period. It has been applied automatically to all active paid subscriptions.

View pricing
~52hTotal incident window
34%Peak error rate
0Data loss events
6Remediations shipped
Executive summary

A single-provider dependency allowed a localized fiber failure to cascade across regions

On July 28, Keirolabs' primary compute provider experienced a fiber cut in one of three US-East availability zones. The failure was initially contained: retry logic at the load balancer masked most errors from end users, and the API error rate remained below 1% through the first 12 hours.

On July 29, the provider's capacity in US-East dropped by approximately 35% as the affected availability zone was fully drained. Without per-region circuit breakers, the overflow was routed to EU-West, which had no backpressure controls. Within two hours, EU-West queue depth exceeded 12x normal, P99 latency crossed 8 seconds, and the system began returning zero results for a significant fraction of requests.

A defect in the API error-handling path caused these zero-result timeout responses to be returned as HTTP 200 with an empty array, making the failure invisible to callers relying on status codes for error detection.

The incident reached SEV-1 at 06:55 UTC on July 29 when peak error rate hit 34%. Emergency compute on a secondary provider was activated at 08:10, reducing the error rate to 6% within 12 minutes. Full stability was restored by 09:00 UTC on July 30 after the upstream fiber was repaired and six remediation measures were deployed to prevent recurrence.

Root cause / architecture during incident

Request flow during the failure window

All three regional compute pools were backed by a single upstream provider. When that provider lost capacity in US-East, the failover path lacked backpressure, allowing unchecked overflow into EU-West.

System topology during incidentJuly 28 to 30, 2026
API Gatewayapi.keirolabs.cloud
Operational
Request routing (no circuit breaker)
US-EastProvider A
Down
US-WestProvider A
OK
EU-WestProvider A, overflow
Overloaded
Timeout, 0 results returned as 200
Compute, Provider AFiber cut in US-East-2 AZ
Partitioned
X
Provider BStandby, not activated
Idle
Incident timeline

Day-by-day chronological record

All timestamps in UTC. Total incident window: approximately 52 hours from first anomaly to confirmed full recovery.

Day 1 / Monday, July 28
14:22
Initial latency anomaly detectedAutomated monitoring flags a sustained P99 latency increase on US-East compute pool. Latency rises from baseline 220ms to 640ms over a 15-minute window. No dropped requests at this stage. Health checks continue to pass.UPDATE
16:05
Intermittent connection drops beginProvider A US-East begins returning sporadic TCP RST on approximately 8% of outbound connections. The load balancer retries mask most failures from end users. Error rate at the API layer remains under 1%.SEV-2
19:30
Engineering opens investigationOn-call classifies the anomaly as a potential upstream issue. Provider A support ticket filed. Internal decision to increase monitoring cadence to 1-minute intervals and prepare standby capacity activation if degradation worsens overnight.UPDATE
Day 2 / Tuesday, July 29
03:41
US-East failure rate escalates to 18%Provider A confirms an internal fiber cut affecting one of three availability zones in the US-East region. Failover within the provider shifts traffic to remaining AZs, but available capacity drops by roughly 35%. Queue depth on EU-West begins climbing as overflow routes cross-region.SEV-1
06:12
EU-West enters degraded stateWith US-East capacity constrained, EU-West absorbs overflow. Request queue depth exceeds 12x normal. P99 crosses 8 seconds. First 0-result responses appear in production logs. The API returns HTTP 200 on these empty responses due to a bug in the error-handling path.SEV-1
06:55
SEV-1 incident declaredPeak error rate reaches 34% across EU-West. Engineering declares SEV-1. All hands called. Root cause confirmed as a single-provider dependency with no per-region backpressure. Immediate action: activate standby compute on Provider B.SEV-1
08:10
Partial recovery via Provider B activationEmergency compute fleet on Provider B comes online in EU-West. Traffic rerouted. Error rate drops from 34% to 6% within 12 minutes. US-East remains degraded but no longer overflowing into EU.RESOLVED
12:30
US-East stabilizesProvider A completes fiber restoration. US-East capacity returns to 100%. Error rate across all regions falls below 1%. Team continues monitoring and begins post-incident review.RESOLVED
Day 3 / Wednesday, July 30
02:15
Secondary latency spike on US-WestBrief 40-minute latency increase on US-West as Provider A applies maintenance patches related to the original fiber incident. No dropped requests. Newly deployed circuit breakers trigger automatic load redistribution. The system self-heals without manual intervention.SEV-2
09:00
Full stability confirmed across all regions72-hour rolling error rate falls below 0.1%. All monitoring thresholds green. Provider A delivers formal RCA citing dual fiber path failure in US-East-2 availability zone.RESOLVED
14:00
Remediation deployment completeMulti-provider failover, per-region circuit breakers, active health probes, queue backpressure limits, and the HTTP 200 bug fix are deployed to production across all regions.RESOLVED
18:00
Post-mortem finalizedInternal review complete. Service credits authorized. This report prepared for publication.UPDATE
Remediated architecture

Current system topology, effective August 1

Single-provider dependency eliminated. Each region is backed by two independent providers with circuit breakers, active health probes, and pre-warmed standby capacity.

System topology, currentEffective August 1, 2026
API GatewayCircuit breaker + latency-aware routing
Operational
Latency-aware routing, 5s probe interval
US-EastProvider A + B
Healthy
US-WestProvider A + C
Healthy
EU-WestProvider B + C
Healthy
Active health probes, per-region circuit breakers
Provider APrimary
Active
OK
Provider BSecondary
Active
OK
Provider CPre-warmed standby
Warm
Remediation

Six changes deployed before this report was published

Each addresses a specific failure mode exposed by this incident. All six are live in production as of August 1.

01

Multi-provider compute distribution

Search workloads are now distributed across three independent infrastructure providers. No single provider handles more than 45% of total request volume. If any provider degrades below the latency SLO, traffic shifts to the next healthy pool within 15 seconds with zero manual intervention.

02

Per-region circuit breakers

Each region operates its own circuit breaker. When the error rate for a given provider in a given region exceeds 5% over a 30-second window, that path is opened and traffic is redirected. This prevents the cascading overflow that caused EU-West to absorb US-East failures.

03

Active latency-based health probes

Passive TCP health checks (30-second interval) have been replaced with active probes that execute real search queries against each provider every 5 seconds. The probe measures end-to-end query latency, not just socket liveness. Degradation detection is now approximately 6x faster.

04

Request queue backpressure

Each regional pool now enforces a queue depth ceiling. When the ceiling is reached, excess requests receive HTTP 429 with a Retry-After header rather than being silently queued and eventually timing out. This gives callers a clear signal to back off or route elsewhere.

05

Pre-warmed standby capacity

Every region maintains warm standby instances on a secondary provider, ready to accept production traffic in under 20 seconds. Previous cold-start provisioning required approximately 4 minutes, which was too slow to mitigate the cascading failure.

06

HTTP status code correction

The API no longer returns HTTP 200 when upstream compute times out and yields zero results. Timeout and empty-upstream conditions now surface as HTTP 503 with a Retry-After header. Genuine empty result sets (valid query, no matches) remain HTTP 200 with an explicit empty_reason field.

Defect resolution

Three error-handling defects identified and corrected

The incident exposed latent defects in the API error path. All three have been corrected in production.

DefectPrevious behaviorCorrected behavior
HTTP 200 on zero results from timeoutAPI returned 200 OK with an empty search_results array when upstream timed out. Callers could not distinguish a timeout from a legitimately empty result set.Upstream timeouts now return 503 Service Unavailable with a Retry-After header. Genuine empty results remain 200 and include an empty_reason field.
Silent failover queue overflowThe failover path had no backpressure mechanism. When Provider A degraded, EU-West accepted every rerouted request into an unbounded queue, where they silently timed out.Per-region queue depth is capped. Requests exceeding the cap receive 429 Too Many Requests with a retry hint, giving callers an actionable signal.
False-positive health checksTCP-level health checks showed Provider A as healthy even when query latency exceeded 10x baseline. No automatic traffic rerouting was triggered because the socket was reachable.Active probes issue real search queries every 5 seconds. If median latency exceeds 2x baseline for three consecutive probe cycles, the provider is marked degraded and traffic shifts automatically.

We owe you better reliability. We shipped it.

The service credit is applied. For questions about this incident, the infrastructure changes, or your account, our engineering team is available.