Claude Hallucinated a GitHub Repository During Deployment
Press Space for next Tweet
A Vercel user reported an issue that sounded extremely scary. An unknown GitHub OSS codebase being deployed to their team. We, of course, took the report extremely seriously and began an investigation. Security and infra engineering engaged. Turns out Opus 4.6 *hallucinated a public repository ID* and used our API to deploy it. Luckily for this user, the repository was harmless and random. The JSON payload looked like this: "πππππππππ": { "ππ’ππ": "ππππππ", "πππππΈπ": "πΏπ·πΉπΏπΉπΏπΊπΆπ·", // β οΈ ππππππππππππ "πππ": "ππππ" } When the user asked the agent to explain the failure, it confessed: The agent never looked up the GitHub repo ID via the GitHub API. There are zero GitHub API calls in the session before the first rogue deployment. The number 913939401 appears for the first time at line 877 β the agent fabricated it entirely. The agent knew the correct project ID (prj_ββββββ) and project name (ββββββ) but invented a plausible-looking numeric repo ID rather than looking it up. Some takeaways: βͺοΈ Even the smartest models have bizarre failure modes that are very different from ours. Humans make lots of mistakes, but certainly not make up a random repo id. βͺοΈ Powerful APIs create additional risks for agents. The API exist to import and deploy legitimate code, but not if the agent decides to hallucinate what code to deploy! βͺοΈ Thus, it's likely the agent would have had better results had it not decided to use the API and stuck with CLI or MCP. This reinforces our commitment to make Vercel the most secure platform for agentic engineering. Through deeper integrations with tools like Claude Code and additional guardrails, we're confident security and privacy will be upheld. Note: the repo id above is randomized for privacy reasons.
Topics
Topics
We doomscroll, you upskill.Get the stories and ideas that matter
slop β’ substance β’ signal5 minutes a day, zero spam.