CASE-33 · Case Study — Air Canada's Chatbot Invented a Refund Policy — and the Airline Paid
What happened
A grieving customer, Jake Moffatt, used Air Canada's website chatbot to ask about bereavement fares before booking a flight to a funeral. The chatbot told him he could book now and apply for a bereavement discount retroactively within 90 days — which is not, and never was, Air Canada's actual policy. When he later requested the refund, the airline refused, arguing (remarkably) that it was not responsible for information its own chatbot provided. In February 2024 British Columbia's Civil Resolution Tribunal disagreed, ruling that Air Canada was liable for the chatbot's statement and ordering it to pay damages.
See it — an ungrounded answer that became a contract
flowchart LR A["Customer asks chatbot<br/>about bereavement fares"] --> B["LLM hallucinates a<br/>'retroactive 90-day' policy"] B --> C["Answer contradicts the<br/>real policy page it linked"] C --> D["Airline refuses refund,<br/>disclaims the bot"] D --> E["Tribunal: you own your<br/>chatbot's words → pay"]
The root cause
The chatbot hallucinated — it generated a fluent, confident, entirely fabricated policy. Critically, it was not grounded in Air Canada's authoritative content: the correct policy existed on a linked page, but the model answered from its own weights instead of retrieving and quoting the source of truth, and even contradicted the very page it pointed to. Layered on top was an organisational failure: no one had decided who is accountable when the bot speaks, and the airline's instinct — "the chatbot is a separate legal entity" — was legally hopeless. The system had authority to make policy-shaped statements to customers with no grounding, no guardrail, and no owner.
The fix that would have prevented it
For anything policy- or money-related, ground the model in an authoritative source — retrieval-augmented generation that quotes the actual policy, with a citation — and constrain it to answer only from retrieved text, refusing when it has no source. Put guardrails on high-stakes topics (refunds, fares, legal terms) that route to verified canned answers or a human, rather than free-form generation. Show the source link inline so the customer and the model see the same ground truth. And settle accountability before launch: a company owns its chatbot's statements exactly as it owns a call-centre agent's, so treat the bot's outputs as binding and test them accordingly.
The blast radius
Financially the ruling was small — a few hundred dollars in damages. Legally and strategically it was a landmark: one of the first decisions to hold a company squarely responsible for its generative AI's assertions, demolishing the "the AI did it, not us" defence. It is now cited across the industry as the reason every customer-facing LLM needs grounding and guardrails, and it reframed hallucination from a quirky model limitation into a concrete legal and financial liability.
The lesson
Your chatbot's words are your words. A generative model with authority to answer customers will, sooner or later, state something false with total confidence — and you will be bound by it. The defence is not "add a disclaimer"; it is to ground high-stakes answers in a source of truth, constrain generation on the topics that carry liability, and assign a human owner to what the machine says.
Where it rhymes
- CASE-34 (Chevy jailbreak) — a customer-facing LLM manipulated into commitments the company never intended.
- CASE-32 (Tay) — a public bot emitting outputs its makers had to answer for.
