---
title: "Moffatt v. Air Canada: the chatbot's answer is the company's answer"
description: "A tribunal held Air Canada liable after its website chatbot misstated the bereavement-fare policy, rejecting the argument that the chatbot answered for itself."
canonical: https://aigovernanceengineer.com/cases/moffatt-v-air-canada
author: "Jorge García Aibar"
license: "CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)"
doi: https://doi.org/10.5281/zenodo.22956197
version: "0.5.0"
updated: 2026-09-26
---

# Moffatt v. Air Canada: the chatbot's answer is the company's answer

> A tribunal held Air Canada liable after its website chatbot misstated the bereavement-fare policy, rejecting the argument that the chatbot answered for itself.

- Year: 2024
- Jurisdiction: British Columbia, Canada
- Sector: Aviation: customer service
- Evidence base: Secondary sources
- Incident record: [AIID 639](https://incidentdatabase.ai/cite/639/)
- Harm: [Legal liability for what the system tells customers](https://aigovernanceengineer.com/resources/harms#harm-liability-for-outputs) · [Reputational damage from harmful or unlawful public outputs](https://aigovernanceengineer.com/resources/harms#harm-reputational-harm)

## In short

A passenger asked Air Canada's website chatbot about bereavement fares and was told he could claim a reduced rate within 90 days of the ticket's issue, although the airline's policy refused refunds for bereavement travel after booking. In Moffatt v. Air Canada the Civil Resolution Tribunal of British Columbia rejected the argument that the airline was not liable for its chatbot, found that it had not taken reasonable care to ensure the chatbot was accurate, and awarded a partial refund; the AI Incident Database reports CAD 812.02 in damages and fees. The harm is legal liability for what a system tells customers, and reputational harm. The failure mode is an answer generated without checking it against the policy it described. A Runtime Guardrail that grounds each answer in the policy or refuses, an Eval Gate in CI on policy questions and an Incident Pipeline would have caught it. The tribunal applied negligent misrepresentation; in the EU, the case touches the AI Act Art. 50(1) disclosure duty.

## What happened

A passenger asked Air Canada's website chatbot how bereavement fares worked. The chatbot told him that if he had already travelled he could submit his ticket for a reduced bereavement rate within 90 days of issue, while the airline's policy stated that it would not provide refunds for bereavement travel after the flight was booked [2].

Before the Civil Resolution Tribunal of British Columbia, the airline argued that it could not be held liable for information provided by one of its agents, servants or representatives, including a chatbot. Tribunal member Christopher Rivers found that Air Canada did not take reasonable care to ensure its chatbot was accurate, wrote that it should be obvious to Air Canada that it is responsible for all the information on its website, and awarded a partial refund [2]. The decision is Moffatt v. Air Canada, 2024 BCCRT 149 [1]; the AI Incident Database reports a total of CAD 812.02 in damages and fees, and records the finding as negligent misrepresentation [3].

## Failure mode

The chatbot generated an answer about a policy without checking it against the policy. Two parts of the same website disagreed, and nothing detected the disagreement before a customer relied on it.

The airline's defence treated the chatbot as outside its own accountability. The tribunal did not accept that [2], and an engineering function should not build on it either.

## Which control would have caught it

A runtime guardrail that grounds every policy answer in the current policy document, cites it, and refuses when no passage supports the answer stops the wrong promise at the point of output. An eval gate with a regression set of policy questions (fares, refunds, eligibility) catches the same failure before release, and the incident pipeline routes complaints about bot answers back into that set.

Patterns: [Runtime Guardrail](https://aigovernanceengineer.com/bok/patterns#pattern-runtime-guardrail) · [Eval Gate in CI](https://aigovernanceengineer.com/bok/patterns#pattern-eval-gate-in-ci) · [Incident Pipeline](https://aigovernanceengineer.com/bok/patterns#pattern-incident-pipeline)

## The evidence that would have existed

What an auditor could have read, and the stack layer that produces it.

- Layer 4 (Runtime Controls & Observability): Guardrail log per answer: the policy passage retrieved and cited, or the refusal
- Layer 3 (Evals & Red Teaming as Evidence): Eval report on the policy-question regression set, with the release threshold
- Layer 5 (Assurance & Continuous Compliance): Incident records linking each complaint to the bot answer and the fix

## Obligations it touches today

As of 2026-09-24. Mappings are illustrative, not a claim of conformity.

- Canadian common law Negligent misrepresentation: The tribunal applied ordinary duties of care to the chatbot's statements: the airline answers for them as for any page of its site [2][3].
- EU AI Act [Art. 50(1)](https://aigovernanceengineer.com/obligations/aige-obl-euaia-art50): In the EU, systems that interact directly with people must be designed so that people know they are dealing with an AI system [4]; Art. 50 applies from 2 Aug 2026 (as of 2026-09-24) [5]. Disclosure does not shift liability for what the system says.

## System boundary

The chatbot on Air Canada's website and the policy page on the same site: one told the passenger he could claim a bereavement rate after travel, the other said the airline would not refund bereavement travel after booking [2]. The tribunal member wrote that the airline is responsible for all the information on its website [2], so the boundary of the system is the website, not the model.

## Control assumptions

What the controls below take for granted. Challenge any of them.

- The published policy page is the authoritative source; an answer that disagrees with it is wrong, however it was generated.
- The organisation answers for what its chatbot says as for any other page of its site; the tribunal rejected the argument that it did not [2].

## Controls by moment

- Preventive: [Eval Gate in CI](https://aigovernanceengineer.com/bok/patterns#pattern-eval-gate-in-ci)
- Detective: [Runtime Guardrail](https://aigovernanceengineer.com/bok/patterns#pattern-runtime-guardrail)
- Responsive: [Incident Pipeline](https://aigovernanceengineer.com/bok/patterns#pattern-incident-pipeline)

## Evidence requirements

The evidence each control must leave, written as acceptance criteria.

- Every version that goes live has an eval report on a regression set of policy questions (fares, refunds, eligibility) that meets the release threshold.
- Every policy answer in the guardrail log carries the policy passage it rests on, or is a refusal.
- Every complaint about a bot answer has an incident record linking the answer, the policy passage and the fix, and the question has joined the regression set.

## Open questions

- When a policy page changes, how quickly must the regression set and the grounding corpus follow, and what record shows that they did?

## How to read this case

Each case is an illustrative engineering analysis of public records, not a legal determination, not a finding of fact beyond what the cited sources state, and not a claim of conformity. Mappings to obligations are illustrative.

## Sources

[1] Moffatt v. Air Canada, 2024 BCCRT 149 (decision not opened directly; citation and holdings confirmed through sources 2 and 3). Civil Resolution Tribunal of British Columbia (CanLII). 2024-02-14. https://www.canlii.org/en/bc/bccrt/doc/2024/2024bccrt149/2024bccrt149.html (verified: secondary)
[2] Air Canada must honor refund policy invented by airline's chatbot (quotes the chatbot, the policy page and the tribunal member). Ars Technica. 2024-02-16. https://arstechnica.com/tech-policy/2024/02/air-canada-must-honor-refund-policy-invented-by-airlines-chatbot/ (verified: secondary)
[3] AI Incident Database, Incident 639: Air Canada Chatbot Reportedly Provides Inaccurate Bereavement Fare Information, Leading to Customer Overpayment. Responsible AI Collaborative. 2026. https://incidentdatabase.ai/cite/639/ (verified: primary)
[4] EU AI Act Art. 50 (transparency; systems that interact directly with natural persons must be designed so that those persons are informed they are interacting with an AI system). Publications Office of the EU (EUR-Lex). 2026-07-27. https://eur-lex.europa.eu/eli/reg/2024/1689/2026-07-27/eng#art_50 (verified: primary)
[5] Safer and more transparent AI (Art. 50 transparency obligations apply from 2 Aug 2026). European Commission. 2026-08-02. https://commission.europa.eu/news-and-media/news/safer-and-more-transparent-ai-2026-08-02_en (verified: primary)
