DEV Community

Paul Crinigan
Paul Crinigan

Posted on

What Actually Breaks When You Ship AI Into A Real Business

Most of the AI content on this site is about models, prompts and frameworks. This one is about the layer underneath all of that, the part that decides whether the feature you shipped ever reaches a human.

I build and maintain automation for small businesses, and the bug reports almost never point at the model. They point at plumbing that everybody assumed already worked.

The Model Is Rarely The Bottleneck

When an AI feature disappoints in production, the instinct is to swap models. Sometimes that is the answer. Far more often the model did its job and something around it failed quietly.

A support chatbot that answers confidently wrong is usually a retrieval problem, not a reasoning problem. It was handed the wrong three paragraphs, or the knowledge base has current pricing in one document and last year's pricing in another, and nothing in the system knows which one is authoritative.

A prediction that misses is usually a collection problem. The training set has a field that got renamed six months ago and backfilled with nulls. No algorithm choice fixes that.

The uncomfortable part is that all of these look like AI failures from the outside, which is why teams keep buying a better model instead of fixing the input.

Delivery Is An Infrastructure Problem

This is the one that catches people hardest, because it feels like it should be somebody else's job.

If your feature sends email, the model's output is irrelevant until the message is accepted. That means SPF, DKIM and DMARC alignment on the sending domain, a warm-up ramp so a brand new domain is not suddenly pushing thousands of messages, volume shaping per receiving ISP, and bounce handling that actually suppresses addresses instead of retrying them straight into a blocklist. Get any of those wrong and beautifully written mail lands in a junk folder nobody opens.

SMS is stricter. In the US you register the brand and the campaign under 10DLC before carriers will pass your traffic at real volume, and unregistered traffic gets filtered without a useful error coming back. None of that compliance work has anything to do with AI, and all of it decides whether the AI's output is ever read.

We keep our own notes on this in one place, twenty guides grouped by the job you are trying to do rather than by tool category, which is roughly the order these problems tend to show up in.

The pattern worth internalizing: every channel has a gatekeeper, and the gatekeeper does not care how good your content is.

Your Data Layer Sets The Ceiling On Answer Quality

Once delivery works, the next ceiling is what the model can actually see.

Retrieval quality is mostly a chunking and freshness question. If documents get split mid-table or mid-procedure, the model receives fragments that read like contradictions. If nothing ever expires, stale answers outrank current ones forever.

The habit that pays for itself is logging the assembled context, not just the prompt template and the response. When an answer is wrong you want to know immediately whether the model reasoned badly or never saw the relevant document at all. Those are two different bugs with two different fixes, and without that log they are indistinguishable.

Same idea for tool calls. A 200 response is not a valid payload. Validate the shape before the next step plans on top of it, or you get an orchestrator confidently building on an empty array.

The Takeaway

Before you evaluate another model, check three things. Can the message actually be delivered. Does the system log what the model was given. Is there one authoritative source for the facts it answers from.

If those three are solid, model upgrades compound. If they are not, a better model just produces better sounding wrong answers, faster.

Top comments (0)