
Prominent software developer and YouTuber Theo, known as t3.gg, recently ignited a discussion on social media by criticizing Anthropic's API engineering. Theo highlighted a significant issue where Anthropic's models return errors with an HTTP status code 200, which typically indicates a successful request. He further alleged that when confronted, Anthropic engineers attributed the problem to Vercel.
Theo, a well-regarded voice in the developer community with a substantial following for his content on full-stack TypeScript and AI, posted on social media, stating, "Anthropic’s models are good, but their engineering is pathetic. They return errors with status code 200. When called out, their engineers blame Vercel???" This direct accusation has drawn attention to a critical aspect of API reliability and error handling.
The practice of returning a 200 OK status for an error condition is widely considered problematic in API design. Standard HTTP protocol dictates that status codes in the 2xx range denote success, while 4xx codes signify client errors and 5xx codes indicate server errors. Sending a 200 status with an error payload can cause client applications to incorrectly process responses as successful, leading to silent failures and complex debugging challenges for developers.
Anthropic's own documentation and user reports confirm instances where their API, particularly during streaming responses, can deliver an overloaded_error (a 529 type error) within a JSON payload, despite the HTTP status code remaining 200. This behavior forces developers to implement content-aware error detection, inspecting the response body for specific error messages rather than relying on standard HTTP status codes. While Anthropic has provided guidance on handling these "silent failures," it deviates from conventional API error reporting.
While no public statements from Anthropic engineers directly blaming Vercel could be found, discussions on platforms like GitHub and Reddit reveal that users of Vercel's AI SDK have encountered integration challenges and "ungraceful failure errors" when interacting with Anthropic's API, often related to the overloaded_error. These integration complexities, combined with Anthropic's unusual error handling, could contribute to the perception of blame or difficulty in pinpointing the root cause of issues. Developers are often left to implement workarounds, such as using guardrails to inspect response content, to ensure application resilience.