
I have chosen the wrong flight dates because your date picker is broken - bfoks
https://twitter.com/pugson/status/1091699189166174208
======
ropeladder
I ended up booking two flights recently because Kayak sent me a "booking
failed" email after I tried once, it failed, then tried again, and it worked.
Then an hour later I got an email from Kayak saying my flight booking had
failed. So of course I booked another flight. They would NOT admit the
slightest wrongdoing. Never using them again.

~~~
netsharc
If you're never using them again, why not do a chargeback? (Apparently
services like Uber or Airbnb ban you if you do this, so it's "mutually assured
destruction"). Or call the airline and tell them how Kayak messed up.

~~~
jliptzin
I find it hard to believe there is any combination of words you can say to an
airline company to successfully refund a non-refundable ticket.

~~~
xfitm3
It can be done. I've cancelled non-refundable flights for medical reasons.
There is also a 24 hour period where you can cancel your flight, which I
believe is by law.

Summary: [https://www.consumerreports.org/consumerist/all-major-u-s-
ai...](https://www.consumerreports.org/consumerist/all-major-u-s-airlines-
offer-free-cancellations-within-24-hours-except-one/)

Full text here:
[http://www.dot.gov/sites/dot.gov/files/docs/Notice_24hour_ho...](http://www.dot.gov/sites/dot.gov/files/docs/Notice_24hour_hold_final20130530.pdf)

~~~
qw
As far as I know, the 24 hour cancellation rule is not international. I think
it is mostly applicable to North America. If this was an international flight,
it is possible that the law did not apply.

European airlines have different policies regarding cancellations, often based
on the type of fare you select. Sometimes you get a full refund, other times
only the taxes and fees.

~~~
fouc
It applies to american-based airfare companies so if you book with kayak,
orbitz, expedia, priceline, etc then there's a 24 hour cancellation period

~~~
newsbinator
I'd love to get a source on that for the next time I encounter this situation.

~~~
tgb
It's easy to find: [https://www.transportation.gov/airconsumer/notice-24hour-
res...](https://www.transportation.gov/airconsumer/notice-24hour-reservation)

Edit: I should add that I don't know if this specifically applies to Kayak,
etc. I'm not sure if that's what you were specifically looking for.

------
Sharlin
Seriously, UI components are _hard_. Even a lowly button is difficult to get
right, where ”right” means ”whatever smart people have converged on after 30
years of GUIs”. Anything more complex than a button is much _much_ harder.
There are a lot of things wrong with the whole ”web app” concept but to me
maybe the most important is everybody trying to implement their UI widgets
from scratch. And I say this as someone whose job used to be writing and
maintaining a webapp UI framework.

~~~
zozbot123
UI components might be hard, but typing <input type="date"> into a HTML
document is not hard, and it's enough for the browser to do the right thing
here. This screwup was entirely self-inflicted, a consequence of ignoring the
well-known best practices of authoring semantically-meaningful web documents,
forms and apps.

~~~
Semaphor
Regarding input type="date"

> Recommendation

> While convenient where it works, the failure mode of type="date" and its
> associated date and time types is very poor. This makes it a risky choice
> that could leave users struggling to meet validation criteria.

[0]: [https://www.smashingmagazine.com/2019/01/html5-input-
types/#...](https://www.smashingmagazine.com/2019/01/html5-input-types/#a8)

~~~
mediumdeviation
I remember desktop Chrome ‘implementing’ date input a few years ago by using
the number input’s spinner. If you press up the date goes to 0000-01-01. It
was worse than useless because you can’t even polyfill in a JS datepicker
since the usual feature detection would detect Chrome as having support for
date input.

------
dguo
I purchased tickets on the AirAsia website recently, and I am confident that
at least on Firefox, their date picker for the passenger's date of birth has
an off by one bug. At least in my case, customer support was able to change
the date.

Edit: I am confident because I purchased multiple tickets with multiple
passengers and also had someone double check that I filled out the info
correctly. All the date of births ended up being one day later than they
should have been.

~~~
koolba
Sounds like a time zone round trip issue. They’re likely using timestamps (say
epoch millis) to represent dates and converting it incorrectly on display.

~~~
dan-robertson
This mistake is quite easy to make in JavaScript. Dates are internally
milliseconds since epoch but if you construct a date by giving year, month,
day, you get midnight in the local timezone which may well be on a different
day from midnight in UTC, so if you send back a unix timestamp or (trying to
be clever) use UTC functions to get a date from a Date object, you may likely
get an off by one error.

~~~
mediumdeviation
Another consequence of this is that JS Date objects don't understand the
concept of timezones, and only allows you to output dates in either the client
timezone or UTC. This makes it extremely hard to, for example, display the
arrival time of a flight in the destination timezone.

Intl.DateTimeFormat[1] is a godsend for this.

[1]: [https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Refe...](https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat)

------
petercooper
Even just labelling the days would help.

There's room for confusion with unlabelled days even when it's "right",
though. The author says "Since when is Feb 2 on a Thursday", but I assume
that's because he's used to a Sunday->Saturday layout on a calendar, whereas
for me I'd assume the 2nd were a Friday based on that position as I'm used to
Monday->Sunday calendars.

 _(Update: OK, the days ARE labelled - incorrectly. You have to click on the
screenshot on Twitter to see the full screenshot. Keeping this comment here
for posterity only ;-))_

~~~
sturgill
The thing is, the screenshot _has_ labeled days. The calendar helpfully
labeled February 2 as a Thursday.

~~~
ghaff
Not the screenshot I'm looking at from the link. [ADDED: Ah, you have to click
through on the twitter image. Yes, it's just flat-out wrong.]

~~~
guitarbill
you need to click it, otherwise it only shows a portion of the screenshot.
above "February 2019" there's a menu bar with days on it (which is incorrect).

~~~
LittlePeter
Wow, that is extremely bad UI from twitter to crop image like that.

~~~
paulgb
Their cropping uses deep learning for the crop[1], but I often notice that
screenshots are clipped weirdly. It makes me wonder if their training set was
all photographs.

[1]
[https://blog.twitter.com/engineering/en_us/topics/infrastruc...](https://blog.twitter.com/engineering/en_us/topics/infrastructure/2018/Smart-
Auto-Cropping-of-Images.html)

------
ratsmack
What's even more sad about the Twitter thread is that AirAsia Support is
responding to everyone that commented in the thread. The responses must be
automatically generated and triggered by any one of the comments... Something
is definitely wrong with their system.

~~~
pas
It seems simply employees got the task of dealing with it. But not doing
anything would seem bad, so ... they reply as if every new subthread would be
a genuine "bug report".

Amazing instance of how not to do teh twitter if you are a corporation.

------
underwater
Charge back? "I purchased a flight leaving on a) Thursday b) Feb 2. Product
did not meet requirements."

~~~
jessriedel
To play devil's advocate: this is tool for helping you to search for a
product. The official transaction happens at the end when they show you the
date, time, airports, costs, etc. all on one page and you click "approve".
(Presumably, the date was correct there.) One can certainly argue that their
sales process was misleading (if only due to incompetence on their part), but
that's a slightly different complaint than they saying they didn't deliver the
product you agreed to purchase.

~~~
happytoexplain
Yes, that's an argument a lawyer might make, but I disagree with the premise:
Any reasonable interpretation of "agreeing to purchase" takes into account the
entire dialogue between the merchant and customer, in which case the merchant
told the customer two different things, and the customer reasonably didn't
notice that one was different. There's no reason to assume about which version
the customer agreed to.

~~~
basicplus2
If both parties thought it was a different date There was no "meeting of
minds"

~~~
tedunangst
Can't wait for airlines to add another confirmation screen to the checkout
process. _Please type "Yes I want this flight and I double checked the dates
are correct" to proceed._

------
gonyea
AirAsia is a flaming disaster. I remember booking a flight out of Bangkok.
Well, it turns out that I actually booked a flight out of the once named
Bangkok airport, which isn’t actually even in Bangkok.

I complained and the “support” rep said “I hope you learned your lesson.” So I
called my bank and disputed the charge, getting a full refund. Apparently they
never figured out how to challenge my dispute. I hope they don’t learn that
lesson.

~~~
a_bonobo
Which airport is that, BMK?

Similar thing in Germany - I used to live close to Frankfurt-Hahn in Germany,
which is _nowhere_ close to Frankfurt, it was renamed to Frankfurt-Hahn at the
request of Ryanair.

Three times I bumped into people asking in which direction to walk to get in
to get into Frankfurt - it's a 90 minutes drive...

~~~
jayalpha
That is nothing. Try flying to Australia and end up in Canada:

[https://www.news.com.au/travel/world-travel/north-
america/co...](https://www.news.com.au/travel/world-travel/north-
america/confused-tourist-bound-for-sydney-australia-lands-in-sydney-nova-
scotia/news-story/83d1957c3369364b979a9b1371786a3b)

~~~
abraae
Or flying to Oakland and ending up in Auckland.

[http://articles.latimes.com/1985-04-02/news/mn-19265_1_custo...](http://articles.latimes.com/1985-04-02/news/mn-19265_1_customs-
officials)

------
userbinator
I'm very curious how a bug like this could even happen. At a glance it doesn't
appear to be the classic "ISO week-based year" problem discussed on HN a few
times before, but somehow the code thinks Feb 1 2019 is a Wednesday... weeks
starting with Sun vs Mon wouldn't account for the off-by-2 error seen here.

~~~
yuchi
I’ve been scratching my head about this too. I can’t find a way to introduce
such a bug in a date picker. The only one I’m thinking is a off by one when
reading the month/year.

For example an API with 0-11 months, and one with 1-12. You’d get info of the
wrong month.

~~~
gpm
Can't be the month, it has the right number of days.

Can't be the year, 2018 and 2020 also don't have February 2 on Thursday.

It can't even be the month but only for the starting day, neither January nor
March have their 2nd on a Thursday.

------
throwaway415415
"session timeout" is the worst thing that can happen when you're trying to
book tickets. The whole experience or booking flying tickets is awful and
generally takes a lot ot time. When this happens and you need to refill
information that's when you book flights for the wrong date. I'm wondering how
common this mistake is.

------
Eric_WVGG
Hm. I ordered a hotel room for today (Saturday, Feb 2) earlier in the week,
and was messaged asking what time I would be checking in on Thursday the 2nd.
I wonder if the big is in a common industry tool.

~~~
scrumper
Something's up. I got a letter a couple weeks back from my kid's school
requesting a permission slip for a theater trip on Thursday Feb 2. Couldn't
figure out how they landed on that date.

------
rapind
It's pretty ridiculous how long we've been stuck with javascript or dropdown
datepickers.

I realize it's subtlety complex to internationalize but it's been a common
input on forms for so long you'd assume native browser support would have been
present in every browser at least a decade ago. It's baffling to me that you
still can't reliably use the input type of date due to lack of support.

~~~
IChrisI
To be fair, custom Javascript on a website can do things that are too rare to
be baked into general browser behavior, such as adding colors or icons or text
to certain dates, date-range validation, disallowed dates, etc.

------
godelski
Is anyone else weirded out by how the AirAsia twitter account is responding to
the comments? It looks like automated responses but then signs with an
employee name.

------
topmonk
This is a discount airline. They employ all kinds of tactics to part money
from the customer, excessive credit card fees on top of a lousy exchange rate,
very small baggage allowance hidden in the fine print, useless insurance
offers, etc.

You should be examining the confirmation screen extremely closely with an
airline like this. Go ahead and blame them if you want to, but they make money
on price, not reputation, and the market has chosen price over quality of
service.

~~~
peteretep
That's too simple a read. There are many many many low-cost airlines in Asia,
and AirAsia is rarely the cheapest for any given journey. They are -- however
-- pretty reliable, reasonably well organized, and I travel with them
regularly on the basis that they're not as cut-throat as some of the other
low-cost options.

~~~
topmonk
That depends... to and from Malaysia they are often the cheapest. They also
have the newly reduced 7kg carry on rule (from the pretty standard 10kg).

This is all subjective, of course, but I really don't see much of a difference
between them and Peach, HK Express, or Scoot.

As a side note, Peach once double charged me for the same flight and wouldn't
refund my purchase, saying it was because I used linux, and that is an
unsupported OS. I contacted my credit card agency and they told me the best
thing was to take the flight and charge it back _after_ I flew, or they might
cancel both tickets. You really have to be careful with these types of
companies, but in my opinion, it's worth it if you pay attention.

------
thewizardofaus
I once tried to book flights on a popular airline website. I used four
different web browsers and each one displayed the content differently, all
resulting in "unexpected error". The only browser that would work was chrome,
it displayed the "missing" field (date of birth)...

~~~
megablast
I have seen this on Jetstar in Australia recently. Disgraceful.

------
sswu
I ran into a similar issue applying for Global Entry. Luckily an appointment
at 3am on Saturday suggested the times were in UTC. Nevertheless this was
unnecessary uncertainty and anxiety - what about those who aren't familiar
with UTC time?

How can we design datetime libraries to prevent these issues? Or at least make
it so that error-prone behaviors must be very explicit?

~~~
repolfx
Well, the problem is web apps, or seen another way, lack of good distribution
mechanisms for desktop apps.

Write your frontend in Java 8 and you have access to a full blown date/time
library that handles all the edge cases and has been well thought out. Do it
in JS and you got bupkis.

------
edhelas
A few months ago I had to book a round-trip and one-way trip with the same
flight for the first trip. Naturally you cannot do that in one go so I book
the two things in two different orders.

I made a mistake, during the booking my credentials were automatically filled
in the passenger form, I didn't checked and I ended up booking two time the
same flight for me, on the same plane, with the same passenger id.

Fun fact, when I check-in for the first ticket, then the second, the website
told me that I was already checked-in (which shows that internally the two
tickets were seen as one).

I called the support and they reimbursed me the second (one-way) ticket. I had
to book another flight the same day which cost me around 300€.

KLM, if you read me, your booking system is really fucked up. I can't
understand that with the volume of order and the price of the tickets we don't
have a bullet-proof system in place for years already.

~~~
saltcured
More than once over the years, my wife has given herself an ordeal with
reserving airfares and hotels and then had to go through website or phone
support to try to untangle it. I watched it happen once, and diagnosed it as a
crappy website using cookies/local storage for what appears to be a normal
HTML form. This recurring flaw makes the reservation system completely unsafe
with multiple tabs performing searches in parallel.

She has an almost compulsive habit to go through the booking process, pause on
the final review screen with the "submit" button, and research other options
in extra tabs before returning to submit the original order. The result is
that she is looking at that previously rendered summary, presses submit, and
gets a completely different configuration booked because the activity in the
other tab contaminated the state of the pathetic web app.

Due to these experiences and others, I mistrust web programmers and try to
avoid complex state. I defensively complete all my research, and then I start
a fresh booking sequence in a private browser window to directly snipe the
selection I desire.

------
yen223
AirAsia used to store passwords in plaintext. I know this because they sent me
my original password when I asked for a password reset

This was a couple years ago. I don't know if they've fixed it since.

------
dawhizkid
In the US by LAW you have 24 hours to cancel a non-refundable flight penalty
free...not sure why you'd freak out in that case if you accidentally booked
the wrong flight or date.

~~~
drexlspivey
Did you know that only 4% of humans live in the US?

~~~
aboutruby
You are getting downvoted but bringing up a good point. A few commenters are
talking about US laws when his Twitter profile says he is located in Poland.

Personally I think it's the same thing as assuming everyone is male. Also
assuming everyone is a software engineer. etc.

------
anth_anm
I was heading back home for a month. I went and took my dog to the kennel,
bussed down to the airport. Was all ready to go after a couple days getting
ready.

Went to check in and realized my flight was 6 weeks in the future. They let me
cancel, but a flight that day was hundreds more and I wound up sitting at the
airport all day. I triple check when I book flights with google flights now.

------
miaklesp
It's not a bug, it's they business model. Why do you think that are so cheap
and so successful at the same time?

~~~
jzwinck
There is some truth to this. A couple years ago I bought three tickets from
AirAsia. A week before the flight there was a volcanic eruption which canceled
all flights at the destination. They issued me a credit voucher for future
flights. Half the credit expired before I next needed to travel to an airport
they service.

I still use them because sometimes they are $300 cheaper. And they don't play
hardball with luggage weights, unlike some full fare airlines like British
("Your bag is 7.8kg, the limit is 7kg, if you want to carry it on you need to
remove five pieces of clothing and put them on yourself").

------
seanhandley
They rebooked him for the correct dates:
[https://twitter.com/pugson/status/1091946878072049664](https://twitter.com/pugson/status/1091946878072049664)

------
fiatjaf
This happens because people need pretty fancy UIs. And companies want to
provide these UIs.

We should be using text and structured data for all services by default.
Companies should be providing simple, very simple text (or JSON if you want
that) APIs by default and people should and could learn to use them.

Web browsers or other apps should and could be packed with nice UIs to browse
these APIs.

Optionally, after these default browsable easy-to-use APIs were working,
people could translate them into more fancy UIs, but for most things, like
booking flights, that wouldn't be necessary at all (who wants a flashy
colorful experience when buying tickets?).

~~~
colanderman
Many big companies barely get HTTP correct. (Side-effects on GET… site
breakage on back button…) I have very little hope that most could get a more
complex protocol working to even a basic degree.

------
dymv
[http://yourcalendricalfallacyis.com/](http://yourcalendricalfallacyis.com/)

------
pmarreck
This is what happens when you write your own datepicker library... or crypto
library, for that matter

------
kuroguro
Feb 2 is _clearly_ in the Friday slot in that picture. /s

~~~
sokoloff
It's obviously under the "Thu" label when you look at the uncropped picture.

Feb 2, 2019 is a Saturday in any event.

------
dewiz
[OT] ...and I had to uninstall twitter to be able to read the linked tweet
(because I didn’t want to log in)

------
actionowl
> Reads headline

What?!

> AirAsia

Oh, yeah not surprised.

------
meroes
Had something similar trying to schedule a phone interview. The confirmation
email text gave a time 3 hours before the date picker time displayed on their
site. I spoke to them on the phone to manually schedule me and then we ran
into a problem where there were no daily saving time zones so I had to give
myself a two hour window to be sure.

------
contravariant
Assuming people start their weeks on the same day as you do is risky at best,
but interestingly this case looks like they corrected the wrong way around,
resulting in a week that starts on Tuesday rather than Sunday (or Monday,
which it may have been before the 'correction').

Edit: Apparently the image I was looking at wasn't the whole image.

~~~
ColinWright
Click through and see the whole image.

~~~
contravariant
Oh, so they actually did indicate the weekdays. Sorry, twitter's crop of the
image made it look like they just had a weirdly aligned calender.

