The weak points appear at the boundaries: data, decisions, and handoffs.
Teams expect the model to be the risky part of an LLM-powered workflow. In practice the model is rarely where things break. The breakages cluster at the boundaries: the data going in, the decision coming out, and the handoff to whatever happens next.
Data boundaries fail quietly. A document that is scanned instead of typed, a field that is sometimes empty, a date in a second format: none of these raise an error. They just produce confident, wrong answers. The fix is unglamorous: validate inputs before the model sees them, and log what the model actually received.
Decision boundaries fail when the output is treated as a fact rather than a proposal. A model that classifies a request as "urgent" has made a suggestion with a confidence attached. Workflows that route on that suggestion without a threshold, a fallback, or a way for a person to overrule it will eventually route something badly.
Handoff boundaries fail on the edges of the format. The model says it has produced JSON; the parser disagrees on a trailing comma; the downstream system retries three times and then gives up silently. Every handoff needs a contract, a check against that contract, and a visible place for the failures to land.
None of this is specific to language models. It is the same discipline as any integration work, applied to a component that is unusually good at sounding right. Treat it like any other unreliable dependency and most of the drama disappears.