The airline says the 22 crew members and about two passengers have been taken to hospital for medical checks as a precaution.
The Airbus A380 took off around 7 pm (local time) yesterday and landed in Vancouver several hours later.
BA says it is investigating the cause of the incident.
The jet can hold 469 passengers but BA did not say exactly how many were aboard. Passengers have been put up in hotels and will be rebooked on other flights.