Две забавные истории про косяки разработчиков со временем в двух разных сервисах, случившиеся в один день.
Первая про Aegean Airlines. У меня в четверг рейс из Стамбула в Пафос с пересадкой в Афинах. Сегодня приходит сообщение, предлагающее мне зарегистрироваться на рейс. Перехожу по ссылке, открывается форма регистрации только на рейс Афины-Пафос. Я слегка в шоке и начинаю сомневаться — а не перепутал ли я что-нибудь при покупке и не взял ли билет обратно только на один из двух сегментов. 5 минут копаний в почте (спасибо gmail за максимально дурацкий поиск) и я убеждаюсь, что покупал я всё-таки билет из Стамбула с пересадкой. Но где тогда первый сегмент? А, стоп, он Turkish Airlines! А они, в отличие от Aegean открывают онлайн-регистрацию не за 48, а за 24 часа. Но зачем это учитывать при рассылке почты компании Aegean, входящей с Turkish Airlines в один Star Alliance?
Вторая история ещё веселее, и тут я уже без Клода не разобрался. Пытаюсь купить для Вали билет на винную ярмарку в Белграде. До попытки оплатить всё в порядке, потом корзина резко пустеет. Залезаю в логи, понимаю, что корзина хранится локально, а потом отправляется на сервер. И даже получает от сервера id корзины, которую нужно оплатить. Но потом на странице корзина она вроде бы есть, но потом хоп и пустая. Не понимаю, как так получается и прошу Claude разобраться. Он лезет в браузер и через 30 секунд говорит мне, что проблема в моей таймзоне. Корзина на сайте живёт 15 минут. При этом то, что она просрочилась, проверяется на клиенте. У меня в Стамбуле на час больше, чем в Белграде. Поэтому как только я перехожу на страницу корзины, фронт радостно говорит, что корзина просрочена и её надо обнулить. Ну, что ж, спасибо Клоду, сэкономил мне кучу времени. Сам бы я так быстро не догадался, что надо просто поменять время в этой вкладке.
21 век на дворе. Но с UTC люди так и не научились работать. Как и довольно очевидные корнеркейсы продумывать. Причем, уверен, оба этих кейса Codex или Claude Code в репозитории наверняка бы подсветили на ревью.