Permission-Aware AI Chatbots: Access Control, Data Residency and DPDP
An assistant that can read every document in your company is an incident waiting for a question. Access control, residency and…
Swapping the model rarely helps. Hallucinations start in the retrieval layer, and they are fixed with grounding, citations, a confidence gate and an evaluation set that can fail a build.
Nearly every enterprise assistant that reaches production eventually says something confidently wrong. AI chatbot hallucinations are the reason many pilots never get signed off, and the reason some live deployments get quietly switched back to a search box. The good news is that this is an engineering problem with known controls, not a mysterious property of language models.
Teams usually reach for the wrong lever first. They swap the model, rewrite the prompt, or add a warning banner. Those changes rarely move the numbers. In practice, most AI chatbot hallucinations begin one step earlier, in the retrieval layer that decides what the model is allowed to see.
This guide sets out where hallucinations come from, the pipeline that makes them structurally hard, and the tests that catch them before your customers do.

A hallucination is an answer that sounds reasonable and is not supported by any source. The model is not lying, because it has no concept of truth. It is completing a pattern. When the retrieved context is thin, the pattern completes from training data instead of from your documentation.
It helps to separate three types, because each has a different fix.
The assistant invents a fact outright: a policy that does not exist, a product feature you never shipped, a refund window nobody approved. This is the type people picture, and it is usually caused by an empty or irrelevant retrieval result.
The facts are real, but they belong somewhere else. The assistant applies your India shipping policy to a customer in the United Arab Emirates. Chunking and metadata are normally to blame here, not the model.
The answer was correct last year. Someone updated the policy page, but the old version still sits in the index. This variety is the most damaging commercially, because it survives casual review. Everyone reads the answer, recognises it, and approves it.
Once you separate the types, the causes become concrete. In our audits, four causes account for the large majority of cases.
Sometimes the honest response is “we have not documented that”. If the assistant has no way to say so, it will improvise. So a missing refusal path is itself a cause of AI chatbot hallucinations, and it is the cheapest one to fix.
This is the most common cause by a wide margin. Keyword search misses paraphrased questions. Pure vector search misses exact product codes and part numbers. Either way the model receives passages that look related and are not, and it writes a fluent answer from them.
Hybrid retrieval fixes most of this. It runs keyword and vector search together, then fuses the results, so precise queries and vague ones both work. Our enterprise search engineering practice treats this as a measurable discipline rather than a configuration setting.
Many system prompts politely ask the model to prefer the supplied context. That is not a constraint. The instruction needs to be explicit: answer only from the passages provided, and refuse when they do not contain the answer.
Documents get split for indexing. Split them badly and a table loses its header, or a condition loses the sentence that qualified it. The retrieved passage then reads as an absolute rule when the original was conditional. As a result, the answer is wrong in a way that is very hard to spot.
Grounded answering is a sequence, and each stage narrows what the model may say. None of the stages is unusual. Together they change the failure mode from “confidently wrong” to “honestly unsure”.
Real questions are short and ambiguous. Expand abbreviations, resolve pronouns from the conversation, and add obvious synonyms. This single step lifts retrieval quality more than most prompt engineering.
Run keyword and vector search in parallel, then fuse the two result sets. Keyword search protects exact identifiers. Vector search protects paraphrasing. Neither alone is enough for a mixed query log.
Retrieval gives you candidates. A reranking model then scores how well each passage answers this specific question. Passing fewer, better passages to the model reduces both cost and error.
Set a threshold. Below it, the assistant says it is not sure and offers a person or a search result. This is the control that converts a potential hallucination into a harmless miss. Teams often resist it because refusals look like failure on a dashboard. In reality, refusals are the cheapest possible outcome.
Finally, instruct the model to answer from the supplied passages alone, and to name which passage each claim came from. Then verify that instruction with tests rather than trusting it.
Citations are often treated as a user interface flourish. They are the audit trail. Without them, nobody can tell whether a wrong answer came from bad retrieval, a stale document or the model inventing something.

A useful citation names the document, the section and ideally the paragraph. It shows when that source was last updated. It also shows the confidence score, so a reader can calibrate their trust rather than guessing.
There is a second benefit that support and documentation teams feel quickly. When an answer is wrong, the citation points straight at the page that needs editing. The fix takes ten minutes instead of a week of debate about the model.
This is why platforms designed for grounded answering put citations at the centre. Intellowork cites the source document, the section and the paragraph behind every reply, runs hybrid keyword and vector retrieval by default, and adds a low-confidence disclaimer rather than guessing. That combination is exactly the control set described above, packaged rather than assembled.
You cannot manage what you do not measure, and “it seemed fine in the demo” is not a measurement. Treat hallucination as a test failure with an owner.

Collect 150 to 300 real questions from your logs. For each one, have a domain expert mark the correct source passage and write an acceptable answer. This is the most valuable artefact in the whole project, and it takes about a week to produce.
Run the golden set automatically on every prompt change, model change and index rebuild. If faithfulness drops below your threshold, the change does not ship. Prompts are code, so they deserve the same discipline as code.
Test sets go stale. Sample real conversations every week and review them with a rotating pair of reviewers. Feed every failure back into the golden set. Over a few months this loop turns AI chatbot hallucinations from a recurring surprise into a tracked defect class.
Teams often assume a larger model will hallucinate less. It usually will not, at least not for your specific content. A stronger model writes a more convincing answer from the same wrong passages. That makes the failure harder to spot, not less likely.
Spend the budget on retrieval instead. Better chunking, richer metadata, hybrid search, reranking and an honest confidence gate will outperform a model upgrade in almost every enterprise deployment. Our AI and NLP engineering work is weighted heavily toward that layer for exactly this reason.
Split documents on structure rather than character count wherever possible. Keep headings with their content. Carry the parent section title into every chunk as metadata. Repeat table headers on each row group. These small choices remove a whole category of misattribution.
Index updates should follow document updates within minutes, not weeks. Store the last-modified date and surface it in the citation. When a source is old, either say so or exclude it. Stale truth is still a hallucination from the customer’s point of view.
Abstract advice is easy to nod at and hard to apply. So here is a real pattern, simplified, from an audit we ran for a retailer.
A customer asked: “can I return a discounted item after 30 days?” The assistant answered yes, with a friendly explanation. The correct answer was no, because discounted items carried a 15-day window.
Nothing about the model caused this. The chain broke in four places, and each one is worth naming.
“Discounted” appeared nowhere in the returns policy, which used the word “promotional”. Because there was no query rewriting step, the search never connected the two terms.
The standard 30-day returns paragraph scored highly, since it matched “return” and “days”. The promotional clause sat two sections lower and never made the cut.
The promotional clause began with “Notwithstanding the above”. That sentence was in a different chunk from the rule it qualified. Even when it was retrieved, it read as an unrelated fragment.
Finally, the assistant had no threshold. It answered because it always answered. A gate would have caught the low score and offered a person instead.
The fix took two days and involved no model change: add query expansion with a synonym list, chunk on document structure, carry section titles into metadata, and set a confidence floor. That combination removed this class of AI chatbot hallucinations entirely for that policy area.
Two factors turn an ordinary mistake into a serious one. The first is access. An assistant that retrieves documents a user is not allowed to read does not just hallucinate, it discloses. Retrieval must therefore respect the same permissions as the source system, checked at query time.
The second is age. Policies, prices and product details change constantly. If your index rebuilds weekly, then for six days a week your assistant is quietly authoritative about the past. Incremental indexing is not a luxury here, and it prevents a surprising share of AI chatbot hallucinations that would otherwise be blamed on the model.
Both controls also make audits easier. When someone asks why the assistant said something in March, you can answer precisely, because the citation, the index version and the permission check are all recorded.
Demos are designed to succeed. These questions are harder to stage.
A platform that cannot answer these has not solved AI chatbot hallucinations. It has hidden them behind a pleasant interface.
Not completely, and any vendor promising zero should be treated with caution. What you can do is make them rare, visible and cheap. Grounding reduces the rate, citations make each one traceable, and a confidence gate converts most remaining cases into an honest refusal instead of a wrong answer.
No. Retrieval augmented generation reduces them substantially, but only when retrieval quality is good. If the wrong passages come back, the model will still write a fluent answer from them. The retrieval layer, not the pattern, is what determines the result.
Rarely. Fine-tuning is effective for tone, formatting and narrow classification. It is a poor way to teach facts, because the facts change and the model does not. Keep knowledge in the index where you can update and audit it.
Sample 100 recent conversations and check each claim against the cited source. If your assistant does not cite sources, that exercise is impossible, which is itself the finding. Most teams are surprised by both the rate and the pattern.
Almost always. A refusal costs one escalation. A confident wrong answer costs an escalation, a complaint, and a slice of the trust that made people use the assistant in the first place.
With an existing assistant, a focused programme usually takes six to ten weeks: one week for the golden set, two to four weeks on retrieval and chunking, then a few weeks of measured iteration behind the evaluation gate.
Before changing anything, measure what you have. Build the golden set, score your current assistant, and write the number down. Everything after that becomes an argument you can settle with evidence rather than opinion.
If you would like help building that baseline, talk to our engineers. We will run your own questions through your own content and show you exactly where the answers are coming from.
An assistant that can read every document in your company is an incident waiting for a question. Access control, residency and…
Per-message pricing changed the economics of WhatsApp automation. Here is how the channel works, what it really costs, and which…
Most support chatbots close conversations instead of solving them. Here is the containment logic, the honest deflection maths and…
Tell us what you are trying to ship. We will tell you what it actually takes — scope, sequence and the risks worth knowing about before you commit budget.