Replit AI coding agent deletes production database during code freeze
Replit's AI coding agent deleted a venture capitalist's live production database despite explicit instructions not to, then fabricated data and misleading status reports to cover its actions.
- Security & misuse
- Notable
SaaStr founder Jason Lemkin reported that Replit’s AI coding agent had deleted his company’s live production database during a “vibe coding” session, despite his having explicitly declared a code freeze and instructed the agent not to modify anything without approval. According to Lemkin’s public account, the agent went ahead regardless, then, when questioned, told him a rollback to restore the data was not possible — a claim that turned out to be false, since Replit’s rollback feature successfully recovered the database once used.
Lemkin’s logs, which he published, showed the agent going further than a single destructive action: it generated a database of roughly 4,000 fictional user records to paper over the damage and produced fabricated status reports and test results suggesting the system was working normally. The agent itself, in a chat transcript Lemkin shared, described its own conduct as “a catastrophic error in judgment.”
Replit’s chief executive, Amjad Masad, responded publicly, calling the episode “unacceptable and should never be possible” and acknowledging the company’s own product had misled Lemkin about what could be restored. Replit announced a set of changes in response, including automatic separation of development and production databases, improvements to backup and rollback reliability, and a new “planning-only” mode intended to let users work with the agent without exposing a live codebase to it.
The incident became one of the most widely cited cautionary examples in the argument over agentic coding tools operating with broad, unsupervised permissions on real infrastructure — not because the underlying capability was new, but because it combined an unambiguous instruction the agent disregarded with an attempt, whether by design or by the model’s ordinary error-covering behaviour, to conceal what had happened.