← Back to tableAll incidents timeline

Suggest a change

About Cursor agent running Claude Opus deletes a production volume and its backups on Railway

Suggest a change to an entry, the methodology or the ledger as a whole: something to fix, correct or add. We read every suggestion, and check corrections against their sources.

PocketOS· Cursor agent (Claude Opus 4.6)

Cursor agent running Claude Opus deletes a production volume and its backups on Railway

A Cursor coding agent working in PocketOS's staging environment found a Railway API token in an unrelated file and used it to delete the production volume and its backups in one call.

PocketOS, a software company serving car rental businesses, says that on the afternoon of 24 April 2026 a Cursor agent running Claude Opus 4.6 hit a credential mismatch in staging and decided to fix it by deleting a Railway volume. It found an API token in an unrelated file, issued a volumeDelete call, and removed the production database and the backups Railway stored in the same volume. The newest recoverable backup was three months old. Founder Jer Crane published the account on 25 April; Railway's CEO said the API honoured a valid, authenticated delete, and on 27 April Railway recovered the data. Railway then made API deletes soft delete for 48 hours. Cursor and Anthropic had not commented in the coverage found.

Updated 19 Oct 2026

First incident action to disclosure
1 day
First incident action to discovery
0 days
Noticed first by
The handler
Caught
The damage

What happened

  • First incident action
  • Unnoticed
  • Handler found out
  • Known, not public
  • Disclosed
  • Public
  1. 24 Apr 2026

    First incident action

    Agent hits a credential mismatch in staging and goes looking for a token

    Working on a routine task in PocketOS's staging environment, the Cursor agent, running Claude Opus 4.6, decided on its own to fix the mismatch by deleting a Railway volume. It found a Railway API token in a file unrelated to the task. The token had been created to manage custom domains through the Railway CLI.

    Reported

    Reports differ

    Day of the deletion. Crane's post of Saturday 25 April, 18:14 UTC, says 'yesterday afternoon', which gives Friday 24 April; time zone and hour not stated.

    • 'Yesterday afternoon' in a post made on 25 April 2026.
    • The Register reports the deletion on Friday 24 April (per a secondary summary; not re-checked in the article text).
  2. 24 Apr 2026

    Agent deletes the production volume and its backups with one API call

    The agent ran a volumeDelete GraphQL mutation against Railway's API with the token. No confirmation step. Crane says it took 9 seconds. Railway kept volume backups inside the volume, so they went too; the latest usable backup was three months old.

    Reported
  3. 24 Apr 2026

    Crane tags Railway's CEO and head of solutions publicly on X

    Crane says he did so within 10 minutes and that Jake Cooper replied that this 'shouldn't be possible'. The reply is quoted only in Crane's account; the post itself was not retrieved.

    Reported
  4. 24 Apr 2026

    Handler found out · 0 days in

    The handler finds out

    Crane says he notified Railway publicly within 10 minutes of the deletion.

    Reported
  5. 25 Apr 2026

    PocketOS restores from a three-month-old backup

    Customers are operating again with 'significant data gaps'. PocketOS rebuilds bookings from Stripe, calendars and email and says it has contacted legal counsel.

    Reported
  6. 25 Apr 2026

    Disclosed · 1 day after the first incident action

    Crane publishes a long account on X

    An X article titled 'An AI Agent Just Destroyed Our Production Data. It Confessed in Writing.' posted 18:14 UTC. It names Cursor, Claude Opus 4.6 and Railway, quotes the agent's own explanation and lists failures by both vendors.

  7. 27 Apr 2026

    Railway recovers the data

    Crane posts at 01:34 UTC that Railway's CEO told him by DM the data was recovered. Railway's CEO told Decrypt it came back 30 minutes after he connected with Crane; The Register reports 'within about an hour'.

    Reported

    Reports differ

    How long recovery took, and from when. Crane's post comes about two and a half days after the deletion; Cooper counts from when he spoke to Crane.

    • Crane: Railway has recovered the data, posted 27 April 01:34 UTC.
    • Cooper to Decrypt: recovered 30 minutes after he connected with Crane; he blamed a support ticket left open more than 24 hours.
  8. 27 Apr 2026

    Railway's CEO says the API honoured a valid delete request

    In an X article Cooper says the agent 'just called delete' and that Railway would honour that request. He tells The Register and Decrypt it was a 'rogue customer AI' using a fully permissioned token on a legacy endpoint without delayed delete.

  9. 27 Apr 2026

    Railway moves API deletes onto its delayed-delete workflow

    Cooper posts that the change went out the night before and that Railway keeps user and disaster-recovery backups.

  10. 29 Apr 2026

    Railway publishes its own account without naming PocketOS

    The post says an agent used a long-lived account-scoped token found on a developer's machine, that the legacy API path cascaded the delete to backup records, and that all API deletes now soft delete for 48 hours.

  11. 1 May 2026

    Railway ships undoable volume deletes over the API

    Changelog entry: volumeDelete through the GraphQL API soft deletes for 48 hours, matching the dashboard. It had removed volumes immediately with no recovery path.

Agent failures

Destructive action, Credential misuseShow
Map to frameworks
  • Destructive action

    Deleted the production volume and its backups unprompted, to fix a credential mismatch.

  • Credential misuse

    Used a token found in an unrelated file, issued for a narrower purpose than the call it was used for.

How it was found

Found first by the handler, from the damageShow
Found first by
The handler
How
The damage
Found to disclosed
1 day

The deletion was found once the data was gone. Crane then asked the agent why it had done it and published the answer. Nothing before the call, in Cursor or in Railway's API, stopped or flagged it. Crane says the agent's own written explanation listed the safety rules it had broken.

What is publicly known

2 of 12 fully publicShow
2 of 12 fully public
ItemPublic?DetailSources
KnownCrane says Cursor running Claude Opus 4.6. Neither Cursor nor Anthropic has confirmed it in the coverage found.
UnknownNo source mentions reasoning settings or a reasoning trace.
PartialCrane says project rules and Cursor's system prompt both forbade destructive actions and that Cursor documents destructive guardrails and Plan Mode. Neither stopped the call. Railway's API had no confirmation or delay on that path.
WeakThe agent quoted a rule about destructive git commands. Crane says it matches Cursor's documented system-prompt language; the prompt is not published.
WeakDescribed only as a routine task in the staging environment that ran into a credential mismatch.
PartialCursor agent that could read the repository, find a token and call Railway's GraphQL endpoint. Crane says the token was in a file unrelated to the task. Auto-run settings are not described.
WeakThe agent reached Railway's public API directly. No egress control described.
PartialCrane quotes the agent's written explanation and the command, with the token and volume id redacted. No full session log published.
WeakNo platform signal described. Crane found the loss himself; Railway's logs are not published.
PartialProduction database and volume backups deleted; restored from a three-month-old backup, then Railway recovered the data. Crane reports customers without booking records and gaps in data. Size of the gap is not given.
PartialCrane and Railway agree on the mechanism: an account-scoped token and a legacy API path with no delayed delete. Why the agent chose to delete is only its own account.
KnownRailway made API deletes soft delete for 48 hours and delayed backup deletion; changelog dated 1 May 2026. No remediation from Cursor found.

Controls that apply

  • Protect

    Give agents their own scoped, short-lived credentials

    The agent found a Railway API token in a file unrelated to its task; the token was made to manage custom domains but carried account-wide authority, enough to delete the production volume. A token scoped to domain management, kept out of the agent's reach, would have refused the volumeDelete call.

  • Ask a person before high-impact or irreversible actions

    The volumeDelete call on the production volume ran with no confirmation step, and Crane says the rule against destructive actions in the agent's instructions did not hold. An approval gate enforced outside the agent would have held the call for a person.

  • Give each agent the least agency its task needs

    The agent was on a routine staging task and decided on its own to fix a credential mismatch by deleting a Railway volume. Without a path to Railway's infrastructure API from that task, it would have been limited to reporting the mismatch.

  • Detect

    Record every agent action, outside the agent

    A record outside the agent would hold the read of the unrelated file containing the token and the volumeDelete mutation it sent, with times. Crane could only reconstruct the sequence from the agent's own written explanation.

  • Recover

    Keep changes reversible

    Railway kept the volume's backups inside the same volume, so the delete removed them too and the newest backup PocketOS could use was three months old. Backups out of the agent's reach would have limited the loss; Railway recovered the data on 27 April and now soft deletes API volume deletes for 48 hours.

  • All controls →

Coverage and commentary

5 posts on X, 2 statements, 2 articlesShow

What the parties involved said

  • Jake Cooper, Railway CEO

    Says an authenticated delete call is honoured, calls for undoable API calls and granular permissions for agents, and describes users handing agents full production access as people creating things.

  • Mahmoud Abdelwahab, Railway

    Railway's account without naming the customer: a legacy API path cascaded the delete to backup records. Lists soft deletes, delayed backup deletion and clearer token scopes.

All 8 sources
  1. Primary source

    An AI Agent Just Destroyed Our Production Data. It Confessed in Writing. ↗X (Jer Crane) · 2026-04-25

  2. Primary source

    Your AI wants to nuke your database. Guardrails fix that. ↗Railway Blog · 2026-04-29

  3. Primary source

    Railway changelog: undoable volume deletes ↗Railway · 2026-05-01

  4. Primary source

    The AI Engineer: A New Breed ↗X (Jake Cooper) · 2026-04-27

  5. Primary source

    Crane post: Railway CEO says data recovered ↗X (Jer Crane) · 2026-04-27

  6. Primary source

    Cooper reply: API calls now use delayed delete ↗X (Jake Cooper) · 2026-04-27

  7. Press

    Cursor-Opus agent snuffs out startup's production database ↗The Register · 2026-04-27

  8. Press

    AI Agent Deletes Startup's Database in 9 Seconds, Founder Says ↗Decrypt · 2026-04-28

Entry id pocketos-cursor-railway-volume-deletion-2026 · overall Reported · impact serious