Keep your systems running

Keep your systems running

Indent watches your logs and error reporting for emergent issues, 24/7/365, helps fix them, and helps keep them from happenng again.

Indent works with your engineers on dozens of parallel end-to-end features at a time, each in an isolated copy of your dev environment with a fully functional computer.

Increased 500 Error Rate on Checkout API

#312

Increased 500 Error Rate on Checkout API

View affected monitor on Datadog

Triggered at

2026-03-25

14:32:04 UTC

Environment

Production

Service

Service checkout-api

Deployment

d7f2841

Requests and Errors

29.8k total (41.2 req/s)

400

200

0

14:32

14:26

14:20

Errors

793 total

400

200

0

14:32

14:26

14:20

Let me pull the recent error data from Datadog.

Datadog

Query Datadog for checkout-api 500 errors

Found 847 errors in the last 20 minutes vs. a baseline of ~12/hr. 94% are NullPointerException in PaymentProcessor processCharge(), all returning HTTP 500. The errors started at 14:32 UTC. Let me check what was deployed around that time.

Investigation

Bash

List recently merged PRs on checkout-api

Bash

View diff for payment gateway migration PR

Query

affected-checkout-customers

The v3 SDK migration in PR #2841 removed a null-safety check on billing_address, causing 847 checkout failures. Putting together a fix now.

Edited 2 files

+805

-100

Fix null billing_address crash in v3 payment SDK

#2845

Changes

9 file

+214

-58

main

9 file

+214

-58

Created PR #2845: "Fix null billing_address crash in v3 payment SDK"

Summary

Root cause: PR #2841 migrated to the v3 payment SDK, which requires a non-null billing_address. The v2 SDK silently defaulted to the account address; v3 throws.

Impact: 312 failed checkout attempts across 287 customers over the last 20 minutes.

Fix: PR #2845 adds a null coalesce to restore the v2 default-address behavior. One-line change on top of the existing migration - cleaner than a full rollback.

Follow-up: Once deployed, the 287 affected customers should see their retries succeed. Worth sending a courtesy notification for anyone who abandoned checkout.

Ask anything

indent/indent

production

Datadog +3

Increased 500 Error Rate on Checkout API

#312

Increased 500 Error Rate on Checkout API

View affected monitor on Datadog

Triggered at

2026-03-25

14:32:04 UTC

Environment

Production

Service

Service checkout-api

Deployment

d7f2841

Requests and Errors

29.8k total (41.2 req/s)

400

200

0

14:32

14:26

14:20

Errors

793 total

400

200

0

14:32

14:26

14:20

Let me pull the recent error data from Datadog.

Datadog

Query Datadog for checkout-api 500 errors

Found 847 errors in the last 20 minutes vs. a baseline of ~12/hr. 94% are NullPointerException in PaymentProcessor processCharge(), all returning HTTP 500. The errors started at 14:32 UTC. Let me check what was deployed around that time.

Investigation

Bash

List recently merged PRs on checkout-api

Bash

View diff for payment gateway migration PR

Query

affected-checkout-customers

The v3 SDK migration in PR #2841 removed a null-safety check on billing_address, causing 847 checkout failures. Putting together a fix now.

Edited 2 files

+805

-100

Fix null billing_address crash in v3 payment SDK

#2845

Changes

9 file

+214

-58

main

9 file

+214

-58

Created PR #2845: "Fix null billing_address crash in v3 payment SDK"

Summary

Root cause: PR #2841 migrated to the v3 payment SDK, which requires a non-null billing_address. The v2 SDK silently defaulted to the account address; v3 throws.

Impact: 312 failed checkout attempts across 287 customers over the last 20 minutes.

Fix: PR #2845 adds a null coalesce to restore the v2 default-address behavior. One-line change on top of the existing migration - cleaner than a full rollback.

Follow-up: Once deployed, the 287 affected customers should see their retries succeed. Worth sending a courtesy notification for anyone who abandoned checkout.

Ask anything

indent/indent

production

Datadog +3

Understanding your data and your code lets Indent autonomously triage and fix broad classes of issues without the need for a human in the loop. But for complex issues, Indent works iteratively to help your team gather information, evaluate solutions, and ship fixes.

Understanding your data and your code lets Indent autonomously triage and fix broad classes of issues without the need for a human in the loop. But for complex issues, Indent works iteratively to help your team gather information, evaluate solutions, and ship fixes.

Issues

IND-102

Hydration Error: Minified React Error #418

Component failed to mount on /pricing

Hydration Error: Minified React Error #418

Severity

High

Issue on

Frontend

Routing to

@dkzlv

Analyzed for 45s

Grep:

"PriceCard" src/components

Git history:

--file PriceCard.tsx

Read:

PriceCard.tsx

Analysis

Confidence: 98%

Root Cause: The PriceCard component generates a random ID on every render. Because the server renders this once and the client re-renders it on load, the IDs do not match, triggering React Error #418.


Context: This was introduced in PR #402 (Pricing Redesign) by @dkngl.

Change proposed by

Indent Code

24

-

const id = Math.random().toString(36);

24

-

const id = useId(); // Stable hook

Dismiss

Create PR

TRIGGER

TRIAGE

analysis

autofix

Indent integrates your error reporting with its understanding of your codebase to surface relevant information faster than manual investigation.

Indent works with you in your incident response channels, tracing issues and proposing fixes in parallel with human effort.

Indent-oncall

Datadog

3:12 AM

Triggered: API latency p99 > 2s - checkout service

View Full log

Time | Service | Message

----------------------------

3:12:04 UTC | checkout | p99 latency 2,340ms

3:12:01 UTC | checkout | connection pool saturated (20/20)

Datadog

3:14 AM

Root cause: EU batch job at 3:00 AM saturated the connection pool on db-primary. Scaled pool to 50 connections, deployed via PR #2891.

✅ p99 back to 180ms · Auto-resolved

After issues are resolved, Indent works with you to improve your processes and harden your infrastructure to make sure they don’t recur.

Add connection pool auto-scaling and circuit breaker #2891

Open

indent wants to merge 1 commit into

main

from

indent/harden-pool

Indent

bot

commented 2 hours ago

On Mar 12 at 3:12 AM, the EU batch job saturated the checkout connection pool (20/20), causing p99 latency to spike to 2.3s.

This PR prevents recurrence:

Auto-scale pool based on connection ratio

Circuit breaker at 85% pool capacity

Move EU batch job to off-peak (4–6 UTC)

Datadog monitor for saturation > 70%

Hear it from our customers

Hear it from our customers

Sashko

Sashko

11:04 PM

11:04 PM

Using Indent to invesigate alerts via DataDog logs is like... insanely good

Using Indent to invesigate alerts via DataDog logs is like... insanely good

❤️

❤️

4

4

Sashko Stubailo, CTO & Co-founder, Flipturn

Jared Forman, Data Lead at Speak

Keep your app running with Indent Oncall

Keep your app running with Indent Oncall

Keep your app running with Indent Oncall

Keep your app running with Indent Oncall

Company

We’re hiring

Security

Skip the docs.

We'll walk you through everything.

© 2026 Indent

Company

We’re hiring

Security

Skip the docs.

We'll walk you through everything.

© 2026 Indent

Company

We’re hiring

Security

Skip the docs.

We'll walk you through everything.

© 2026 Indent

Company

We’re hiring

Security

Skip the docs.

We'll walk you through everything.

© 2026 Indent