A British Airways plane flew by mistake from London to Edinburgh instead of Dusseldorf in Germany on Monday.

Passengers only found out about the mishap when the pilot said the plane was coming in to land in Edinburgh, which is around 800 kilometres from Dusseldorf.

After the crew realised the mistake, the plane was refueled and flown to Dusseldorf, landing in Germany with a delay of more than three and a half hours.

"We are working with WDL Aviation, who operated this flight on behalf of British Airways, to establish why the incorrect flight plan was filed," a spokesman said.

@British_Airways can you please explain how can my morning flight taking off from LCY to Dusseldorf land in Edinburgh 😅? While an interesting concept, I don't think anyone on board has signed up for this mystery travel lottery... #BA3271 #frequenttravel #britishairways — Son Tran (@sontrantuan) March 25, 2019

Passengers took to Twitter to share the surprise.

"While an interesting concept, I don't think anyone on board has signed up for this mystery travel lottery," Son Tran wrote.

I have fallen asleep, missed my stop and woken up at the end of the district line before. This morning I never expected to wake up from my Dusseldorf bound flight...in Edinburgh! @British_Airways #BritishAirways #BA3271 — Peter James-Hamilton (@PJamesHamilton) March 25, 2019

The rest of the Twitter was also confused.

I have so many questionshttps://t.co/QYmxy0sOv8 — Khaya Dlanga (@khayadlanga) March 25, 2019

Hey @British_Airways, we have a present for you 👀 pic.twitter.com/m3K9ZNk0Ew — Ryanair (@Ryanair) March 25, 2019

@British_Airways What on earth happened to BA3271 LCY-DUS this morning? The flight went straight to Edinburgh, everyone on the plane wanted to go to Germany, no explanation offered... — Piotr Pomienski (@denshigishi) March 25, 2019

Passenger Sophie Cooke told the BBC that the wait in Edinburgh "became very frustrating".

"The toilets were blocked and they ran out of snacks. It was also really stuffy," she said.