Greek PLF: Problems can be fixed
Published: 2020-07-25 09:37:09

## Problem definition 
I was due to go on holiday a few days ago, booked many months before the Covid situation even started to evolve. Unfortunately that was cancelled.

Now that the world is cautiously opening up again, we've changed the booking and will be leaving in a few days time. But there's a problem...

My partner and I will be going to Greece, the Greek Authorities require a Passenger Locator Form (PLF), and the PLF website doesn't accept the postcode for where we will be staying. I'm not about to enter a fake postcode (because we should be telling the truth on the form), and our airline have said "no PLF, no boarding" - so I can't even argue the point in Greece.

But thankfully, every problem has a solution (and if you think otherwise, you simply need more information about the problem).

## Investigation & reasoning

Being a developer, I understand that the Greek Authorities were in a rush to put the PLF together, and made mistakes (lots of comments online about the problems with the PLF).

But also, thanks to the rush, I know the developers will have made mistakes in the implementation too, so lets investigate a little.

First things first, I popped open the dev tools in Chrome & looked at the input for the postcode, standard div, nothing special. No use of "form" here, so everything is in the JavaScript. The JavaScript has been minified, so let's go ahead & tell Chrome to pretty-print that.

OK, the JavaScript is a bit of a mess thanks to it being minified & pretty-printed, so lets work backwards... trigger the validation error, then search for the text displayed, and walk backwards through the stack.

It turned out that the postcode validation is a pretty simple `if array contains value then OK` - and the postcode of our stay wasn't in the array.

## The workaround

Quite simply breakpoint on the validation method, then `arr.push(...)` in the console. Then it accepted the value I was telling it, and let us complete the PLF's.

## Closing notes

I've deliberately not included screenshots, and deliberately not given details of the problematic postcode. There's a good chance there's a reason it's not there (maybe the hotel is still closed, maybe the border guards won't be happy with what I've done etc).

I understand why the validation problem happened, and I'm glad it did, otherwise we wouldn't be getting a flight.

Ultimately, I now have a partner that's very thankful she married a developer. We will, of course, be taking every possible measure to keep ourselves & everyone else safe in the current climate.

If you're in a similar situation & have some programming knowledge (why else would you be reading Dev?) then have a look at the page, see if you can figure out a workaround.

## Follow up

Looking at the statistics in Dev, this has proved quite popular (probably because of the current travel restrictions around the globe), so an update is probably worth while. At the time of writing this part, we've been home for a little over a week.

The key points:
- I was a little nervous at the airport, the last thing I wanted was to be pulled aside, questioned and sent home! Thankfully, I showed the Greek Police officer the QR codes and he waved us straight through, no conversations, no Covid-19 tests.
- Other people at our hotel reported the same problem with the postcode. I didn't ask when they submitted their form, or how they worked around it, but a few did admit to me that they entered a valid but incorrect postcode, and no-one stopped them at the airport either.
- After our trip, it is now possible to enter the postcode without a problem. I suppose that the array is initially populated by "select unique value from previously submitted entries" and as a result, I inadvertently "fixed" that specific problem for everyone else. That's certainly more likely than manual intervention by the Greek authorities, but this is pure speculation on my part.

### Other things to note

In my (non-affiliated, non-expert) opinion, the PLF form is broken. That in itself is to be expected in our field. No-one writes good code when rushing, no-one writes good requirements when rushing. However, in my job, our peer review process only cares "is it _good enough_?" - and yes, the PLF website is likely considered "good enough" by most people's standards.

I'm aware that other people online have been complaining about both the postcode issue, and a plethora of other issues with the PLF - I haven't seen those issues myself, so my comments on them will be pretty limited.

It is a great shame however, that a (again, my opinion) buggy system was released _and then_ treated by other companies as the rule of law. In my case, if I hadn't been a developer, we wouldn't have been on holiday unless I was prepared to enter factually incorrect information - our airline would not have let me board without a PLF. In other cases in the media, people were refused flights because they didn't fill in an _optional_ piece of information. That level of bureaucracy is mind boggling!

Lastly, but not least - a guest at our hotel travelled from the UK, was tested at the airport and then transferred to our hotel - _while we were there_. Subsequently they had a positive result, and were transferred to a Greek isolation facility of some description. The media articles that I've seen state something similar to "all guests were informed" - this is _categorically_ false. No-one told us, I happened to find out because an article popped up in Google Now about it. As a result, anyone we spent any time around since returning home has been told by us about it, and we are choosing to self-isolate for 14 days, just because we don't see the point in taking the risk. 10 days since returning home, neither of us have shown any symptoms (thankfully).