Do AI Support Bots Hallucinate? What Actually Goes Wrong
Yes, a language model can invent things. In a support ticket the failure that turns up is a different one, and the rules that stop it tend to cause the other.
Dani, Founder, AI Ticket Bot
9 min read
Everybody asks this before they install one, and they are right to. A support bot speaks to your members in your name, at three in the morning, with nobody reading over its shoulder. If it makes something up, you find out from the member.
The honest answer comes in two halves. The first is the one you are expecting. The second is the one that costs most servers more, and almost nobody tests for it.
Do AI support bots hallucinate?
Yes. A language model produces the most plausible continuation of a conversation, and plausible is not the same thing as true. Left ungrounded, one will quote a refund window, invent a price, or name a channel that never existed, in the same calm tone it uses for things it actually knows.
What makes this uncommon in a ticket bot is that a ticket bot is not left ungrounded. It answers out of a store of things your staff wrote down, and its instructions treat its own general knowledge as wrong for your server by default. What your server's AI actually knows covers where that store comes from.
So when an admin says the AI hallucinated, four different things are usually meant, and only one of them is this.
| What you saw | What actually happened | Is it a hallucination? |
|---|---|---|
| It quoted a price nobody ever taught it | It answered from general knowledge instead of your memory | Yes |
| It gave last quarter's refund window, confidently | Your memory holds an answer that was true when it was written | No, it is stale |
| It answered the question next to the one asked | A stored fact matched too loosely | No, it is retrieval |
| It refused something you had clearly documented | It never looked the answer up at all | No, and this one is worse |
Three of the four are not the model inventing anything, and each has a different fix. That last row is where this article ends up.
What stops a support bot inventing an answer?
Four rules, all of them unglamorous, all of them carrying the weight. They sit in the instructions the AI runs under on every single reply, not in a marketing claim about accuracy.
What grounding actually means here
- Look it up first
- Anything about your server is checked against your stored knowledge before it answers, even when the model is sure it already knows. The stored value overrides its general knowledge
- Quote, do not paraphrase
- An exact price, link, command or policy value is repeated word for word instead of reworded. Rewording is how a number quietly drifts
- Say the gap out loud
- When nothing is stored, it says so and offers to bring in your team, instead of filling the space with something reasonable
- Name nothing it has not checked
- It cannot point a member at a channel it has not confirmed exists this turn
The fourth is the smallest rule on that list and the easiest one to test, so it is worth a closer look.
I cannot see a channel by that name, so I would rather not send you to the wrong place.
The lookup came back empty and it said so, instead of guessing a name that sounds plausible
You can post that in #bug-reports.
A channel name it never confirmed. It may be called something else, may be hidden from that member, or may not exist at all
The subtle part is that this holds even when the channel name came out of your own memory. Memory stores names as words, and a word is not a channel, so the name is checked against the live server before it is spoken and the clickable link is pasted instead of the bare text. If the check finds nothing, it says it cannot see that channel rather than naming it anyway.
It is a tiny behaviour, and it is the difference between a bot that is grounded and one that is merely plausible. You can test it in about a minute.
The failure nobody watches for
Every rule above has an overdone version. Push them hard enough and you get a bot that never says anything untrue and never helps anybody either, which is where most cautious support bots end up.
Reaching too far
- States a price it was never given
- Names a channel it has not confirmed
- Promises a refund it cannot authorise
- Answers about your own policy from the open web
Hedging too far
- Refuses a question it never looked up
- Asks three clarifying questions before answering
- Says it will go and check, then ends the turn
- Tells the member staff will follow up, without notifying any
Both columns are failures. Only the left one gets screenshotted, because every individual reply on the right looks responsible. Nobody opens a ticket to complain that the bot was too careful. The member just stops replying, and the number that moved is one you were not watching.
So the second set of rules matters as much as the first, and it is the more interesting half:
- "That is outside what I cover" is never a reply to a question it has not looked up yet. Declining is reserved for questions about the assistant itself, its instructions and its setup. It is explicitly not a licence to duck a question about the thing your server exists to support.
- A clarifying question is allowed only when the request genuinely has two different answers and memory cannot say which one was meant. Never as a reflex, never to seem thorough, and never before searching.
- It cannot say it will check and then stop. The check happens in the same turn or it did not happen.
- If it tells a member that staff will review something, it escalates on that same turn. The promise and the notification are one action, so there is no human who was mentioned to a member but never actually pinged. How escalation is wired covers who gets it.
Read those four next to the four in the previous section and you have the real shape of the problem. Accuracy is not one dial you turn up.
When is a wrong answer most likely?
Not on day one, which surprises people. A brand new bot has nothing stored, so it mostly tells members it does not have that yet and offers to fetch somebody. Useless, but not dangerous, and teaching it is the fix for that.
The risk peaks in the middle. Your memory is half taught, most answers are right, and the confidence is identical across all of them. Somewhere in there is a fact that was true on the afternoon a staff member typed it and has quietly stopped being true since.
The stalest entry in a brain is always the one nobody has thought about in months, which is also the one nobody thinks to check. Two things keep that liveable. Contradictions resolve rather than accumulate, so correcting a policy is a one line job instead of a hunt for the wrong version. And a ticket where the AI got something wrong and a human put it right can become the correction itself, in one action, which is the loop most servers under-use. Learning from your real tickets is that second one in full.
What we cannot stop
The honest limits, in the order they are likely to reach you.
If your memory is wrong, the answer is wrong. Grounding makes the AI faithful to what you wrote down, and a mistake you teach it is a mistake it will deliver confidently, in seconds, to every member who asks. That is a far more efficient way of being wrong than one tired moderator at midnight.
Exact values survive, nuance can flatten. What lands in memory is a structured entry rather than your sentence word for word. Prices, links and commands come back verbatim. A carefully hedged exception written as prose can come back with the hedging sanded off. Where the precise wording matters, a saved quick response is the better tool: it is stored and replayed exactly as written.
Crossing languages is another place precision can go. Knowledge is stored in English and replies come back in the member's language. Technical values survive that on purpose. A policy nuance is prose, and prose translates.
In a public quick-question channel there is no safety net on that turn. That surface deliberately has no tools: it cannot escalate, read another channel, or learn anything, and anything account-specific gets pointed at a ticket instead. A weak answer there does not land in front of a human the way it would inside a ticket. What AI cannot do in support lists what is switched off where.
We do not publish an accuracy percentage. We could compute one and it would not mean anything, because it would be measured against tickets whose correct answer nobody ever wrote down. Treat any number of that shape, ours or anyone else's, as marketing unless it arrives with its method attached.
How can you tell if a bot will make things up?
Six checks, cheapest first. None are specific to us, all work on a free plan, and together they take about twenty minutes.
Test it before your members do
- Ask it something you never taught it. A grounded bot says it does not have that, a reaching one produces something that sounds right
- Ask for an exact value you did teach it, and check it came back word for word rather than reworded
- Ask where to post something, naming a channel that does not exist. See whether it invents one
- Teach it a fact, change the fact, teach the new version, then ask again. You are testing whether the old answer is gone or merely outvoted
- Ask the same question in a second language and check the numbers and links survived the trip
- Read the tickets it closed with no human in them, for one week
The last one is the real test and it is the one everybody skips. Across more than 180,000 tickets in this bot's lifetime, roughly half closed with no human replying at any point, which on a busy server is a great many conversations held in your name that nobody has read.
How AI-resolved is defined here
- Sample
- Every ticket handled across this bot's lifetime, V1 and V2 combined, more than 180,000 of them
- Window
- Lifetime to date, refreshed continuously rather than fixed to a date
- Definition
- The AI closed the ticket and no human replied at any point. One staff message and it does not count
That figure is live at /api/stats/global rather than typed into this page, and every closed ticket keeps a transcript at its own link, so both the number and the conversations behind it are checkable rather than asserted. For where the line between the two sides sits, which tickets go to AI and which go to people draws it.
Keep reading
Check these rather than trusting us
- Live stats endpointServers, lifetime tickets, AI-resolved share and reply time
- Machine-facing factual referenceWhat the product does and does not do, written for crawlers
- Uptime and incident history90 days of real incidents, including the bad ones
- Plans and limitsRendered from the live catalogue, free plan included
Frequently asked questions
It is when the bot states something as fact that nobody ever told it. A language model produces the most plausible continuation of a conversation, and plausible is not the same as true, so an ungrounded one will happily quote a refund window or name a channel that has never existed. A support bot is grounded when its instructions make it look the answer up in your own stored knowledge before replying, and treat its general knowledge as wrong for your server. That does not make the failure impossible. It makes it uncommon enough that other kinds of wrong answer become the ones you actually meet.
Ours is instructed not to, and the rule is specific rather than a general plea for accuracy. It must check your stored knowledge before answering anything about your server even when it is sure it already knows, it must repeat an exact price, link, command or policy value word for word instead of rewording it, and if nothing is stored it has to say so and offer to bring in your team rather than fill the gap. The realistic risk is not invention. It is that the price you taught it six months ago is no longer the price.
It says so plainly and offers to bring in your team, then escalates on that same turn if the member accepts. It is specifically not allowed to dead-end, to tell the member to open another ticket, or to send them off to a support channel instead. It is also not allowed to say it will check something and then end its turn, because a promised check that never happens reads to the member exactly like being ignored.
Only up to a point, and most cautious support bots are past it. A bot that refuses anything it is unsure about, asks clarifying questions as a reflex, or promises that a human will follow up without notifying one is failing just as surely as a bot that invents an answer. It simply fails in a way nobody screenshots, because each individual reply looks responsible while the member quietly gives up. Constraints have to run in both directions, or you have traded one failure for a quieter one.
Read the tickets that closed with no human in them, for one week. That is the only measurement that is about your server rather than about the model. Every closed ticket keeps a transcript at a link you can open, so the reading is a browser tab rather than a project. Do it once a month afterwards and you will find stale facts long before a member does, which is the failure that actually costs you something.
Your knowledge first, always. Anything about your products, prices, policies or procedures has to come from what your staff taught it. Web lookup exists only for current outside-world information that your own memory could not contain, it is capped inside a single reply, and it is a switch you can turn off. The ordering is the whole point: a bot that reaches for the web first will confidently tell your member what somebody else's refund policy is.
It’s not just an AI, it’s your AI.
See it on your own server.
Add the bot free, teach it a few of your most common answers, and watch it clear the repeat tickets on its own.
Free plan, no card. Your first panel starts 14 days of Premium.
Keep reading.
All articlesDiscord Ticket Close Requests: Ask First, Close on a Timer
Staff can ask the opener whether a ticket can be closed, with a deadline attached. What the member sees, the four ways it ends, and why silence closes it.
9 min read
Discord Ticket History: How Members Find Their Own Past Tickets
Closing a ticket deletes the channel, but the member keeps the record. How they find their old tickets and transcripts, and what the history deliberately hides.
8 min read
Discord Saved Replies: What Belongs in the Library
A saved reply is a staff message, so every one you send ends the AI's turn. What to keep in the library, what to teach the AI instead, and where the limits sit.
9 min read