Skip to content
Field note

15 Minutes from Bug to Merged PR: Building an Autonomous Incident Response Pipeline

How Axelerant built an autonomous incident response pipeline for a live sportsbook — Sentry to PR in 15 minutes, with human review intact.

June 9, 2026·8 min read·Hardik Kumar Patel, Senior Software Engineer/ Field correspondent
15 Minutes from Bug to Merged PR: Building an Autonomous Incident Response Pipeline

The incident response cycle at most engineering organizations looks roughly like this.

A Sentry alert fires. It lands in a Slack channel where it competes with forty other notifications from the past hour. Someone notices it during morning standup, or in the afternoon, or when a user reports a symptom that prompts someone to check the error tracker. A Jira ticket is created. It gets triaged in the next sprint planning. A developer picks it up. They read the stack trace, navigate the codebase to find the relevant code path, write a fix, and raise a pull request. On a well-run team with clear prioritization and no competing sprint pressure, this cycle takes somewhere between four and eight hours. Often more.

On a live sportsbook running 20,000-plus concurrent markets, four to eight hours is a long time for an unresolved production issue to sit open.

The pipeline we built on this engagement closes that cycle in fifteen minutes. The developer is notified when the fix is already in review — not when the error was first detected. This is not a description of faster human response. It is a description of an autonomous agent doing the analysis, writing the implementation, raising the pull request, updating the project tracker, and handing off to a human reviewer, end to end, without anyone being awake.

Why Sportsbooks Make Incident Response Unforgiving

The environment matters here, because it shapes the constraints the solution had to satisfy.

A live sportsbook is not a system that tolerates graceful degradation well. When 20,000 markets are live simultaneously, with real-money bets being placed against real-time odds, the assumption is continuous availability. More than 250 concurrent admin agents are managing market states, resolving settlements, and handling edge cases. Streaming infrastructure is processing event feeds at scale — at this platform's operating parameters, that meant managing enough concurrent data feeds that memory efficiency alone became a production constraint, not a theoretical optimization concern.

In this context, a production error that causes incorrect market state, mis-routed bet settlement, or degraded real-time feed processing is not a developer experience issue. It is a business event, and its cost scales with time. The instinct to automate incident response is not about engineering elegance. It is about the economics of a platform where every unresolved issue has a concrete and growing price.

What existing tooling solves well is detection. Sentry, PagerDuty, and their counterparts are mature and effective at identifying errors, deduplicating signals, and routing alerts to the right people. What they have never solved is the analysis-to-fix gap — the distance between "we know something is wrong" and "a proposed fix is ready for review." That gap has been exclusively human territory, and it has remained so because automating it correctly is genuinely difficult.

Why Automating the Fix Is the Hard Part

The challenge is not generating code. Any sufficiently capable language model, given a stack trace and a codebase, can generate a plausible-looking patch. The challenge is generating the right code — a fix that correctly addresses the specific error without introducing regression in a codebase that spans multiple interconnected services — and presenting it in a way that gives a human reviewer genuine confidence in what they are approving.

An autonomous incident response system has to do several things correctly in sequence. It must identify, from the error context, which specific code path is responsible — not just which service, but which function, which data transformation, which conditional branch. In a distributed system with fifteen-plus microservices, that navigation is non-trivial. It must then reason about the fix not just in isolation but in the context of what depends on the affected code — understanding blast radius well enough to propose a change that is safe to ship, not just syntactically correct. And it must present the fix in a way that makes the review process meaningful rather than perfunctory.

The failure mode of getting this wrong is not just a bad PR. It is a production fix that introduces a second bug, reviewed and merged by a developer who trusted the automation without the context to catch the error. Every design decision in the system we built was made with this failure mode in mind.

The Robin Agent: Architecture of an Autonomous Pipeline

The pipeline is built around an agent we called Robin. The end-to-end flow, from error detection to engineer notification, runs as follows.

Sentry continuously monitors the platform for new errors. The first design decision — and a critical one — is that Robin is scoped to unique errors only. Duplicate or recurring errors are filtered out. The goal is not to generate PRs for every signal; it is to generate PRs for errors that represent genuinely new failure modes. Flooding a code review queue with duplicate attempts would erode the team's trust in the system faster than any incorrect fix.

When a unique error is confirmed, Robin pulls the full issue context from Sentry via API: the error message, the stack trace, the service, the request context, and any associated metadata. This is the raw material for everything that follows.

Robin then navigates the codebase. This is not a keyword search — it is a structured exploration of the code path implicated by the stack trace, tracing the call chain to understand what the error actually means in context. Once the relevant code is identified, Robin writes an implementation plan: a description of what the error is, why it is occurring, and what the proposed fix will do. This plan is written directly into the Jira ticket associated with the error. The human reviewer sees the reasoning before they see the code.

The code fix is then generated against the identified path, and Robin raises a pull request on GitHub. The Jira ticket is moved to Code Review status automatically. The engineer assigned to the issue receives a notification with a direct link to the PR.

The final element — one that distinguishes this pipeline from a pure code-generation workflow — is the reasoning record. Robin generates a screen recording of its analysis and implementation process using ffmpeg, and attaches it to the PR. A reviewer does not just see a diff; they see a compressed walkthrough of how the agent reached its conclusion. This is not cosmetic. It is the mechanism by which the team builds confidence in autonomous output without simply trusting it blindly.

End to end: fifteen minutes. From the moment Sentry detects a unique error to the moment an engineer receives a link to a reviewed-and-staged PR.

The Guard Rails That Make This Safe

An autonomous code generation pipeline operating on a production codebase without safety constraints would be an unreasonable thing to deploy, regardless of how capable the underlying AI is. The Robin pipeline does not operate without constraints.

Robin sits inside a broader engineering infrastructure that was deliberately designed before any autonomous workflow was introduced. The codebase runs Claude Code with three guard hooks operating at the file system level. The first blocks any code containing secrets or credentials from being staged — not flagged, blocked. The second warns when infrastructure configuration files are modified and requires explicit acknowledgment before proceeding. The third flags potentially destructive database migration changes for human review.

These hooks apply to every change that touches the codebase, whether that change was written by a developer, an AI assistant, or an autonomous agent. Robin cannot raise a PR containing secrets. Robin cannot modify infrastructure configuration silently. Robin's pull requests go through exactly the same human code review process as any other pull request on the platform.

The design principle at work here is important: the speed improvement is in time-to-PR, not time-to-merge. The human review step is not an obstacle to be optimized away. It is the mechanism by which autonomous output is validated before it touches production.

What Changed, and What It Means

The measurable difference is the gap between the team's previous human SLA — hours — and the autonomous pipeline's delivery time: fifteen minutes. But the more interesting change is qualitative.

When an engineer is notified of an incident and finds a proposed fix already staged for their review, their relationship to the problem shifts. They are no longer the person who has to find the bug and design the fix under pressure. They are the person who evaluates a proposed solution with their full attention, brings their expertise to bear on whether the fix is correct and complete, and approves or requests changes based on a documented reasoning chain.

There is also a compounding effect that is harder to quantify: teams that can close production issues fast develop a different relationship to shipping. The fear of introducing a bug that will sit open for hours is a real cost that most engineering teams carry, often unconsciously. An incident response model that consistently produces fixes in fifteen minutes changes the risk calculus.

The sportsbook platform running this pipeline has also achieved documented performance outcomes — 89% reduction in P99 API latency, 40× streaming memory efficiency improvement, throughput at 560+ RPS — that represent the broader engineering culture this kind of tooling enables.

Design Decisions That Make This Replicable

The Robin pipeline is not a black box. The architectural decisions that make it work — and safe — are specific enough to be applied by engineering teams on different stacks.

The deduplication gate matters more than it might seem. Scoping autonomous response to unique errors prevents the pipeline from becoming noise and gives the team confidence that every PR represents a genuine new problem.

The implementation plan in Jira — written before the PR is raised — is what makes the review process real. A reviewer who sees the reasoning first can assess whether the approach is correct before evaluating whether the implementation is correct. These are different cognitive tasks, and separating them improves the quality of both.

The screen-recorded reasoning output is the trust-building mechanism for the longer term. It gives reviewers enough information to know when the agent's reasoning was sound and when it was not, without requiring them to reconstruct the analysis from scratch every time.

The guard hooks are not optional. They are the contract between the autonomous system and the engineering team: AI assistance operates within a defined boundary, enforced at the infrastructure level, not the honor system.

The detection-to-fix gap is solvable with tooling that exists today. If your team is carrying a human incident response SLA measured in hours and you want to understand what an autonomous pipeline could look like in your environment — the architecture, the guard rails, the trust model — we're glad to think through it with you →

Companion brief

Bring this dispatch into a working session - one page in, scoping memo out.

Brief Foyer
Pressure-test "Field note" with a partner

If this dispatch landed, bring it into a room with us.

The argument in "15 Minutes from Bug to Merged PR: Building an Autonomous Incident Response Pipeline" is ours - but every situation breaks the argument differently. Send the situation in one page and a named partner will reply inside one business day with a scoping memo: where the argument holds for you, where it bends, and what we'd actually do in the first two weeks.

One-pager · Field note

By submitting this form you acknowledge that you have read Axelerant's Privacy Policy and agree to its terms.

Replied to by a named partner within one business day.