Changes / Buildkite / Issues with webhook ingestion, GraphQL queries

Buildkite: Major incident: Issues with webhook ingestion, GraphQL queries

Summary

Buildkite reported a major incident affecting webhook ingestion, GraphQL queries and some web requests, starting at 2026-09-22 20:07 UTC and resolved at 2026-09-22 20:50 UTC (42 min). The postmortem places customer impact between 19:09 and 19:32 UTC: 2.0% of webhook ingestion requests and 20.3% of external GraphQL requests returned HTTP 500 errors.

Machine-written from the diff below (Sol; type: incident outage). Check the diff before relying on it.

Major incidentLabel: outage (model (Jev), 96%)Changed Detected Source: stspg.io (opens in new tab)

What changed

AddedTitle#1
Before: not present
After: Issues with webhook ingestion, GraphQL queries
AddedImpact#2
Before: not present
After: major
AddedStatus#3
Before: not present
After: postmortem
AddedStart time#4
Before: not present
After: 2026-09-22 20:07 UTC
AddedResolved time#5
Before: not present
After: 2026-09-22 20:50 UTC
AddedUpdateinvestigating#6
Before: not present
After: We're seeing an issue affecting webhook ingestion and execution of GraphQL queries and are investigating the cause.
AddedUpdateidentified#7
Before: not present
After: Our engineers have addressed the issue and we're monitoring recovery.
AddedUpdateresolved#8
Before: not present
After: Services are fully recovered. Webhook ingestion was affected between 19:09 UTC - 19:32 UTC.
AddedUpdatepostmortem#9
Before: not present
After: ## Service Impact On September 22, 2026, between 19:09 and 19:32 UTC, customers experienced failures ingesting webhooks and executing GraphQL queries. Some web application requests also failed or timed out. During this period, 2.0% of requests to our webhook ingestion endpoints and 20.3% of requests to our external GraphQL endpoint returned HTTP 500 errors. Webhook ingestion errors ceased by 19:30 UTC, and external GraphQL errors returned to background levels by 19:32 UTC. ## Incident Summary While investigating a separate API performance issue, we made a manual configuration change intended to rollback a routing change for one database proxy. The command instead changed the routing configuration for another database proxy, disrupting access to a database shard used internally by Buildkite. Some customer-facing operations search across all database shards to locate their shard, where routing information isn't available in the request. Those requests round robin through available shards, and could encounter the unavailable shard and wait for a database connection to time out. This extended the impact beyond our internal workloads. We reverted the incorrect configuration and verified that the database proxy had healthy endpoints and load-balancer targets. Two contributing factors allowed the change to cause an outage: the command was not independently checked before execution, and our infrastructure accepted a Service configuration that selected the wrong database proxy workload. The cross-shard lookup behaviour then allowed the disruption to affect requests for other customers. This configuration-change outage was separate from the API performance issue we were originally investigating. ## Changes we're making * Safer operational procedures: We have updated our runbook and introduced an explicit second person review requirement for manual production commands. * Automated safeguards: We’ve added validation to prevent database proxy routing changes from selecting the wrong workload. * Improved failure isolation: We’ve been working on an ongoing initiative to make database shard discovery more resilient, eliminating the remaining cases where an unavailable shard may impact requests for other customers.

First version of this incident archived by Rewindex. View the live incident (opens in new tab).

History of this incident

When (UTC)ChangeKind
Major incident: Issues with webhook ingestion, GraphQL queries (this change)
Buildkite reported a major incident affecting webhook ingestion, GraphQL queries and some web requests, starting at 2026-09-22 20:07 UTC and resolved at 2026-09-22 20:50 UTC (42 min). The postmortem places customer impact between 19:09 and 19:32 UTC: 2.0% of webhook ingestion requests and 20.3% of external GraphQL requests returned HTTP 500 errors.
Major incident

All Buildkite changes → · Buildkite profile · Markdown · JSON