Production problem, verified fix.
- Passed: Found in production
- Passed: Fixed in a tested pull request
- Passed: Verified after the release
Aient watches your production telemetry, finds the cause in your code and opens a pull request with a tested fix. Your team approves the change, and Aient confirms in production that the problem has stopped.
€15 starter credit, no card required
Watch Aient fix a crash in production
One real crash, start to finish.
In our five-in-a-row demo app, the game crashed whenever the computer player had to make the first move of a new game. No error on screen, no alert, no ticket. This is how Aient took it from the first crash to a verified fix.
1Detect
Aient finds the crash in telemetry
Before anyone reported it.
After “Play again”, the board stayed empty and the browser logged TypeError: Reduce of empty array with no initial value. Aient picked it up from production telemetry, grouped every occurrence into one problem, PRB-4, and named it. It ranks each problem by impact: the people and sessions it affects, how often and how long it happens, and whether it is a regression.
Clear enough for a person to read at a glance, and for your coding agent to pick up as it is.
Problems / PRB-4
computerPlayer.ts reduce() called on empty array without initial value
luffarschack · first 6 Oct, 17:29 · last 8 Oct, 10:02 · seen for 1d 16h · 3 occurrences · 1 user affected
2Context
Aient traces the cause to the code
Telemetry says what. Code says why.
With one clear problem, it’s worth spending real intelligence. Aient read the traces, logs and metrics for PRB-4 together with the code and its recent changes. The likely cause: computer-move selection doesn’t handle an empty board, so reduce() runs without an initial value and throws. Players can’t start a game when the computer moves first. Aient filed it in Linear, linked to PRB-4.
PRB-4 · Investigation
The computer-player logic calls reduce without an initial value on an empty array of scored cells, throwing a TypeError. This aborts computer move selection and can block game progression or clean completion on the affected interaction path.
nextjs/luffarschack/src/lib/computerPlayer.ts · line 80
.map((cell) => ({ cell, score: scoreCell(board, cell.x, cell.y, player) }))
.reduce((best, candidate) =>
candidate.score > best.score ? candidate : best3Fix
Aient opens a pull request with a tested fix
Aient opened PR #17 with the root cause in plain words, the change, and red-green tests for the TypeError. The change handles the empty board before choosing a move. It followed the checks and the preview deployment, and reported their status in the pull request.
You review a fix instead of writing one.
aient-ai/aient-samples · #17
fix(luffarschack): prevent empty-board computer move crashes
Merged
- Vercel
- Vercel Preview Comments
Validation
The new tests reproduced TypeError: Reduce of empty array with no initial value before the source fix. After the fix: pnpm test — 24 tests passed.
4Verify
Aient verifies the fix in production
Resolved, then verified.
Your pipeline deployed the merge. New telemetry carries the release’s commit SHA, so Aient checks the crash against the exact version running.
- Passed: Release attributed by its full commit SHA.
- Passed: No recurrence of the crash after that release.
- Passed: PRB-4 closed as Resolved · Verified.
If the crash comes back, PRB-4 reopens with its history.
Next time, it starts further ahead.
From PRB-4, Aient proposed one invariant to remember: move selection must handle an empty board. Your team approved it, so the next investigation starts with it.
Problems / PRB-4
computerPlayer.ts reduce() called on empty array without initial value
Resolved · Verified
luffarschack · last 8 Oct, 10:19 · 4 occurrences · 1 user affected
Release attribution FULL SHA · 100% full · 24h
#17 fix(luffarschack): prevent empty-board computer move crashes · Merged
Agon Avdullahu, Team Lead, COPE
“I can ask a question about production and get an answer in seconds instead of spending an afternoon on it.”
Agon Avdullahu (opens in a new tab), Team Lead, COPE
Before Aient, tracking down a production problem meant guessing which service to look at, then digging through logs one at a time. The worst ones were the failures that didn't announce themselves — a service answering health checks normally while something inside it had quietly stopped working.
What changed is that I can ask a question about production and get an answer in seconds instead of spending an afternoon on it. That's true for incidents, but also for ordinary decisions — when I need to know how something actually behaves under real traffic before committing to a design, I can just look, rather than argue about what feels right.
If you're considering it: cross-service traces are worth it on their own. Most of our genuinely confusing problems have been one service failing in a way its own health check couldn't see, and that's very hard to find without them.
Connect your code and telemetry, and see what Aient finds.
One thread, wherever you work
Discuss the problem with Aient in Slack or Microsoft Teams, track it in Linear and review the change in GitHub. The findings, the decisions and the change stay linked to the problem.
- Slack · Aient
New problem PRB-4 in luffarschack: reduce() on an empty array when the computer opens a game.
- Slack · Henrik
Is that the Play again bug? Go ahead.
- Web app · Aient
Root cause confirmed: resetting a game can make computer X start with no stones.
- Linear · Aient
Filed and linked to PRB-4.
- GitHub · Aient
The preview is ready, and both checks on PR #17 are passing.
- Web app · Aient
PRB-4 resolved and verified against the release’s full commit SHA.
Aient for coding agents
Production context through MCP
Connect the Aient MCP server with an API key. Claude Code, Codex, Cursor or any MCP client can then list problems, query traces and logs across your services, and ask Aient for a fix that arrives as a pull request.
Your laptop
CPU and memory
Aient sandboxes
Offload agentic runs
Your agents can use the same isolated sandboxes Aient fixes in. Run the heavy work there, keep your local files in sync and get your laptop’s CPU and memory back. Sandboxes support nested virtualisation, so the same Docker Compose stack or local Kubernetes cluster runs there as on your laptop.
- Tests
- Docker Compose e2e
- Playwright
- Vagrant
- Kubernetes
Prefer the terminal? The Aient CLI finds an investigation, shows its progress and picks up the conversation.
“The agents we had waited to be asked. The one I wanted was already looking.”
Henrik Feldt, Founder, Aient
Access, approval and your data
Who can do what
You decide who joins and what each person can do. Aient checks identity and permissions before it acts on anyone’s instruction, in Slack too.
What reaches your code
You choose the repositories Aient can see, and can revoke access at any time. Every change arrives as a pull request. Merge automation is off by default, so merging stays with your team until you decide otherwise.
Where your data lives
Hosted in the EU.
Built to SOC 2 criteria. Certification on the roadmap.
What Aient does while you keep shipping
- Always-on detection.Finds crash loops, error spikes and regressions in your production telemetry.
- AI triage.Groups related signals, scores their impact and brings in the code behind them.
- Automated fix PRs.Turns an investigation into a targeted pull request with tests, ready for your team to review.
- Production health.Every problem, its triage, its fix and its status in one place.
- Connected workflows.One thread across Slack, Microsoft Teams, Telegram, email and the web app.
- OpenTelemetry setup.Adds instrumentation to your services as a pull request, then checks that the data arrives.
Why we built it this way
“We knew time was money when we decided to try Aient, but after a month of use, we quickly realized it could save us both.”
Ramon Saldanha, Senior Backend/DevOps, CloudOps Engineering
We knew time was money when we decided to try Aient, but after a month of use, we quickly realized it could save us both.
Being able to understand what's failing, why it might be failing, and what to investigate next has made our engineers faster and more effective without replacing their judgment.
Instead of running SQL queries and pulling logs from four different sources just to identify an issue and create a fix, we can now investigate and move toward a solution through a single interface, in minutes rather than hours.
Aient has made our troubleshooting workflow significantly more efficient, Highly recommended!
Stop firefighting. Start fixing.
Connect a repository. Aient reads your stack, writes the OpenTelemetry setup for server and browser, and opens it as one pull request. Merge it, and Aient tells you when the data arrives.
Pricing counts the work Aient does, not the volume of telemetry you send.
€15 starter credit, no card required
Read the setup guide (opens in a new tab)Already on OpenTelemetry? Connect it (opens in a new tab)See pricing