Incident Library

IL-0557 Storj · 2025-08-07database

Database transaction locks piled up on Storj's US1 satellite, and uploads and downloads failed with timeouts for 2 hours

On 7 August 2025 an exceptionally high volume of simultaneous uploads to the same objects reached the Storj US1 satellite. The database transactions for these uploads contended with each other, and because a transaction holds locks on the data it touches until it is committed or rolled back, locks built up from 21:04 UTC. Long-running transactions increased, requests timed out and connection pools were exhausted. The on-call team was paged at 21:14. To stop contention errors from growing in a cascade, Storj periodically reset the state of connections, and a fix was in place at 21:55. Error rates rose again at 22:31, returned to normal at 22:45, and operations were fully restored at 23:05. Storj then changed code to remove the sources of contention between transactions.

Severity
–
Scope
Storj US1 satellite uploads and downloads (US1 Linksharing, Gateway, Select)
Users affected
Customers and applications using the US1 satellite
Region
US1
Time to detect
10m
Time to resolve
2h 1m

Symptoms

From 21:04 UTC on 7 August 2025, database transaction locks on the Storj US1 satellite started to increase, and upload and download requests began to fail. The on-call team was paged at 21:14 UTC.

As long-running transactions grew, requests timed out and connection pools were exhausted. After a fix at 21:55 UTC error rates came down, rose again at 22:31, and returned to normal at 22:45; operations were fully restored at 23:05 UTC. The AP1 and EU1 satellites were not affected.

Symptom Lock contention or deadlockIntermittent timeoutsConnection pool exhaustionHigh error rate

Root cause

Root cause Capacity exhaustion

Component Database
Contributing factor –
Trigger
An unusually high volume of concurrent uploads to the same objects reached the US1 satellite.

Detection

The on-call team was paged at 21:14 UTC, ten minutes after database transaction locks began to rise.

Remediation

Action items

Lessons

–

Sources

Related cases

Check your cluster for this

kubegap audits a Kubernetes cluster for conditions like the ones in this case, Database among them, read-only, from Claude Code or Codex. Its checks cite public reports like this one.

For AI tools and scripts

The API needs no key. The MCP server offers search_incidents, get_incident, list_incidents, get_topic and vocab; both are explained on API and MCP.