Across dozens of engagements — new builds, rescues, and audits of systems that were already in production — the same failure patterns appear repeatedly. They're not random. Most failing AI projects fail for one of six reasons, and most of those reasons are visible early if you know what to look for.
This is not a list of cautionary tales. Each pattern has a specific root cause and a specific prevention step.
Failure mode 1: No eval baseline
What it looks like: The project ships. A few weeks later, someone makes a change — updates the system prompt, switches to a newer model, adjusts the retrieval configuration — and the system gets worse. Nobody knows it got worse because there's nothing to compare against. Users start complaining. The team investigates. By the time they've diagnosed the problem, they've also changed three other things, so the cause is unclear.
Alternatively: the team genuinely believes the system is good. It performed well on the examples they tested. Those examples were the ones they wrote. The system performs poorly on anything else.
Root cause: No evaluation infrastructure was built before or during development. "Testing" meant running a few queries manually and checking if the results looked reasonable. Reasonable to whom? By what standard? Nobody wrote it down.
Prevention:
- Before building anything, define a golden eval set: 50–100 representative input/output pairs drawn from your actual use case. These should be hard cases, not easy ones.
- Establish at least one quantitative metric. For RAG: retrieval recall and answer faithfulness. For agents: task completion rate. For classification: precision/recall per class.
- Run evals on every significant change. Version-control your eval set alongside your code.
- Use a framework. Ragas works for RAG systems. DeepEval has broader coverage for agent tasks. A custom harness built around
pytestwith an LLM-as-judge step is also fine.
An eval baseline isn't expensive to build — a solid starting eval set takes 1–2 days to construct. The cost of not having one is paid later, when you can't tell if any change is helping or hurting.
Failure mode 2: Over-scoped first build
What it looks like: The project brief covers 8–12 use cases. The agent should handle customer support, generate reports, analyze documents, draft emails, search the knowledge base, flag compliance issues, and escalate to humans in 4 different scenarios. The team builds all of it. Six months later, each capability works marginally and none of them works well. Users try the tool once, get an acceptable-but-not-great result, and stop using it.
Root cause: The assumption that more capability equals more value. In practice, users stop using tools that don't reliably perform well, regardless of how many things the tool can do. A focused tool that does one thing with 95% reliability beats a broad tool that does twelve things at 70% reliability.
The second cause is organizational pressure. Multiple stakeholders contribute requirements. Each one wants their use case covered. Nobody is willing to say "not this one, not yet." The result is a system that satisfies requirements on paper and users in reality.
Prevention:
- Ship one use case first. Pick the highest-value, most clearly defined one. Get it to 90%+ task completion on real user queries before adding anything else.
- Measure actual user adoption, not feature coverage. A feature that exists but isn't used is not a success.
- Add use cases only when the previous one is performing reliably.
The projects that succeed are almost always the ones that felt too narrow at the start. "We're only doing document Q&A, nothing else" sounds limiting until the document Q&A actually works and users love it, and then it's easy to add the next thing.
Failure mode 3: Hallucination caught in production but not in the demo
What it looks like: The demo goes well. The responses are accurate, well-structured, and confident. The stakeholders are impressed. The project gets approved. Six weeks after launch, a user asks the system a question that wasn't in the demo script. The system gives a confident, detailed, plausible, and completely wrong answer. Nobody catches it for three weeks. By then, the wrong information has been acted on.
Root cause: Demo queries are curated. They're chosen because the system handles them well. Real user queries are not curated — they're longer, shorter, stranger, more ambiguous, and more adversarial than any demo script imagines.
The second cause is no retrieval verification in RAG systems specifically. When a system generates a confident answer that isn't grounded in the retrieved context, it's often not caught because no one is checking whether the answer matches the source material.
Prevention:
- Never approve a system for launch based on demo queries. Run it on a set of adversarial inputs: questions it should say "I don't know" to, questions with ambiguous answers, questions that probe the edges of what the system is supposed to know.
- For RAG systems: implement a faithfulness check. A separate LLM call (or a fine-tuned classifier) that verifies the generated answer is supported by the retrieved context.
- Build a confidence threshold. When the system's confidence is below a threshold (or when retrieval similarity scores are low), return "I don't have reliable information on this" rather than a low-confidence generated answer.
- Log all production queries and sample them manually. 20 random queries per week from a senior person in the first month post-launch catches a lot.
Failure mode 4: No ownership after launch
What it looks like: The system ships successfully. Users are using it. The vendor moves on. Three months later, OpenAI deprecates gpt-4-0613 and the system is hardcoded to that model. Or the vendor updates a dependency and breaks the parsing logic. Or the LLM's behavior shifts subtly with a provider-side update and no one notices until the metrics have been degrading for six weeks.
The team responsible for the system has changed. The original builders are on other projects. The documentation is thin. Nobody knows how to update the prompts. When something breaks, the diagnosis takes much longer than it should because the institutional knowledge walked out the door.
Root cause: Treating AI systems like traditional software where launch = done. Traditional software doesn't change unless you change it. AI systems exist within a dependency stack (LLM providers, embedding models, APIs) that changes without your involvement. The prompt that worked in November may work differently in April.
Prevention:
- Define ownership before launch. Specific person: responsible for prompt maintenance, dependency updates, and monitoring.
- Write prompt maintenance documentation. What does each system prompt do? What parameters can be changed? What does a failure look like and how do you diagnose it?
- Set up automated eval runs. Weekly or bi-weekly, run the golden eval set and alert if performance drops more than X%.
- Plan for model transitions. When you build, document the assumptions your prompts make about model behavior. When OpenAI releases a new default model, test your evals against it before it becomes the default.
- Budget for ongoing maintenance from the start. AI systems are not set-and-forget. A monthly maintenance retainer — even a small one — is cheaper than an emergency rescue six months after launch.
Failure mode 5: Wrong model for the task
What it looks like: Every LLM call in the system uses GPT-5 because "it's the best." The monthly OpenAI bill is $4,000 and the actual quality benefit over GPT-5 mini is marginal for most tasks. Or the opposite: GPT-5 mini was used everywhere to save costs, and the system fails regularly on tasks that require complex multi-step reasoning.
A different form of the same failure: the wrong model architecture entirely. Using a generation model for a classification task that would be solved better (and cheaper) by a fine-tuned classifier. Using an LLM to extract structured data from documents when a purpose-built extraction API would be faster, cheaper, and more reliable.
Root cause: Model selection by default rather than by requirement. The team uses whatever model they've used before, or whatever is most prominent in the documentation, without analyzing what the task actually requires.
Prevention:
- Classify your tasks by requirement. Classification or extraction tasks often don't need a frontier model. Tasks requiring multi-step reasoning, creative synthesis, or handling of ambiguous instructions benefit from a more capable model.
- Test cheaper models before settling on expensive ones. Many tasks that teams assume require GPT-5 perform identically on GPT-5 mini at 5% of the cost. Run the eval.
- Consider purpose-built tools where appropriate. AWS Comprehend for entity extraction. Whisper for transcription. Dedicated OCR for document digitization. LLMs are flexible but not always the right tool.
- Cost-model early. Before committing to a model, calculate the per-query cost at your expected volume. If a more capable model costs 10x more and your evals show 5% quality improvement, that 5% needs to justify the cost.
Failure mode 6: Built by someone who learned AI last month
What it looks like: The portfolio is YouTube demos, LangChain quickstarts, and a "I built a chatbot in 30 minutes" Medium post. The system ships with no error handling, no rate limit management, no eval infrastructure, and prompts written in a style that worked in the tutorial but breaks on production inputs. When something goes wrong in production, the diagnosis takes a week because there's no logging.
The organizational version of this failure: a company's internal team decides to "just build it ourselves" after watching a few tutorials. They ship something that works on their test data, present it to leadership, and then discover that real users have completely different query patterns.
Root cause: LLM APIs are genuinely easy to call. Getting a response from GPT-5 takes three lines of Python. This creates the impression that building a production AI system is similarly easy. The gap between "calling the API" and "building a production system with monitoring, evals, error handling, and maintenance infrastructure" is large and invisible until you cross it.
Prevention:
- Review the portfolio for production signals. Have they shipped systems with real users? Can they describe what broke and how they diagnosed it? Do they have eval reports from previous projects?
- Ask technical questions that only production experience can answer. "How do you handle hallucination in a RAG system?" "What do you do when model latency spikes?" "How do you know when to use reranking?"
- Look at the code, not just the output. Ask to see a previous project's architecture or a code sample. Code written by someone without production experience has recognizable patterns: no error handling, hardcoded magic values, no logging, tests that only cover the happy path.
- Check their understanding of evals specifically. Someone who has shipped production AI can describe how they measured it. Someone who hasn't will describe testing as "making sure it works."
For organizations building in-house: acknowledge the skill gap before shipping. A few months of tutorial experience is not production readiness. Either hire someone with a production track record, bring in experienced outside help for the critical components, or dramatically scope down the first build to something where a tutorial-level implementation is acceptable.
What these failure modes share
Every failure pattern above has the same underlying structure: something was not measured, not owned, or not scoped correctly at the beginning of the project.
- No eval baseline: not measuring performance
- Over-scoped first build: not scoping correctly
- Demo hallucinations: not measuring on real inputs
- No post-launch ownership: not assigning responsibility
- Wrong model: not measuring cost vs. quality trade-offs
- Wrong builder: not evaluating operational experience
The prevention steps are all things that require investment before and during the build, not after. They're also all things that become much more expensive to retrofit than to build in from the start.
The bottom line
Most AI project failures are not technology failures. They're process failures: missing evals, missing ownership, missing scope discipline, missing experience.
The pattern that's hardest to recover from is the sixth one — the wrong builder — because by the time the scope of the problem is clear, the budget is spent and the timeline is blown. That's the failure mode we most commonly see in rescue engagements.
If you've inherited a failing AI system or a project that shipped without proper evals, our AI agent evaluation services describe how we diagnose and recover these situations. If you're starting fresh and want to avoid these patterns, the failed AI project rescue page explains what a structured intervention looks like.