When people talk about LLM failures, the default word is usually "hallucination."
But after building and testing LLM apps, I think many production bugs are better described as contract failures.
A hallucination is when the model makes something up. That matters, but it is not the only failure mode.
The subtler bugs happen when the model had enough context, but violated the surrounding system contract.
Examples:







