Решился я недавно на покупку билетов Аэрофлота. Затея сама по себе подозрительная, но я решил усугубить: скачал их мобильное приложение под андроид и купил все там. Заказал билет из Барселоны на 27 февраля, вылет в 23:45, и очень удивился, когда после оплаты мне на почту свалились билеты на 28 февраля с вылетом в 23:45 и прибытием 1-го марта. Как так, не мог же я так грубо ошибиться?

Я провел раскопки, которые показали, что ошибка именно в мобильном приложении, поехали:

image

На руках у нас официальная версия, попробуем оформить еще один билет на те же даты, делая скриншот на каждом шаге. Выбираем даты, возвращение 27 февраля:

image image

С билетом ТУДА все в порядке, он оформляется без ошибок, проблема только с ОБРАТНО, и только для ночного рейса:

image image

Вот здесь уже начинается проблема, дата вылета внезапно становится 28 февраля в 23:45, прибытие тоже 28 но в 6 утра, прям машина времени! К сожалению, когда я покупал свои билеты, я это проморгал, и просто перешел в бронирование и оплату:

image image

Когда мы готовы оплатить билеты, мы видим корректную дату вылета ОБРАТНО — 27 февраля. О возможных проблемах говорит только цена билета, которая внезапно снизилась по сравнению с предыдущим шагом.

Мы сейчас не будем это оплачивать, ведь все только ради эксперимента, поэтому закрываем данное окно и просто переходим в раздел «Мои бронирования», чтобы посмотреть, что именно на самом деле мы сейчас оплатим. Бронь уже сформирована и видна в списке как «UQSNTG:

image image

И вот здесь мы внезапно обнаруживаем, что дата вылета сдвинулась на сутки! Я это обнаружил уже после оплаты, по телефону Аэрофлот был готов менять дату только с комиссией (около 2500р за билет), предложили оставить претензию на сайте. Претензию конечно оставил, прошло 4 дня без какой либо реакции, но это и не удивительно: срок рассмотрения претензий 30 дней.

Почему это вообще произошло? 27 февраля в Барселоне зимнее время, а в момент покупки билета — летнее. На одном из шагов покупки доблестные разработчики получают дополнительный час, и дата вылета прыгает на сутки (время вылета 23:45), после чего они подставляют к найденной дате время из расписания. Это также означает, что с 29 октября бага перестанет воспроизводиться, т.к. Барселона таки перейдет на зимнее время. Самый простой способ устранить ошибку, это конечно же запретить летнее время вообще, вероятно разработка Аэрофлота пойдет именно этим путем.

Ошибка воспроизводится и на другие даты, например с вылетом 30 октября. Этот вылет менее чем через 2 недели, а срок рассмотрения претензии те же 30 дней. Ошибка воспроизводится только в мобильном приложении для Android, для iOS я не тестировал, на сайте Аэрофлота покупка проходит корректно.

Для сомневающихся я записал видео с экрана моего телефона:



Для особо сомневающихся — попробуйте купить такой билет самостоятельно в своем телефоне.
Всем спасибо за внимание, я отдельно отпишу здесь о результатах рассмотрения моей претензии в Аэрофлоте.

Важный апдейт: Компания Аэрофлот сегодня вышла на связь и изменила дату вылета Обратно без штрафов. Пообещали „работать над приложением“.

Комментарии (56)


  1. firuz1844
    18.10.2017 13:09

    Удалено


  1. batja84
    18.10.2017 13:54

    Вот именно поэтому не стоит делать покупки через мобильный, маленький экран, всё мелко, какие-то мелочи можно не увидеть. По итогу аэрофлот останется прав, а вы попали на 2500 рублей.


    1. Zashibis Автор
      18.10.2017 14:04

      В момент перед самой оплатой билета их мобильное приложение показало правильные даты, которые я выбрал изначально. Это подразумевает, что нажимая кнопку оплатить, именно эти даты я и ожидаю увидеть в билете. Но не увидел, даты поменялись совершенно неожиданно для покупателя, и Аэрофлот тут однозначно не прав.
      И 6 дюймов — не такой уж и маленький :)


      1. ffs
        19.10.2017 11:21
        +3

        Да не парьтесь, все размеры хороши =)


    1. igrushkin
      18.10.2017 14:04

      чем он оказался прав?


    1. sergiobelya
      18.10.2017 14:08

      Аэрофлот не прав, поскольку на разных экранах у него разные даты. Когда автор проверял (ну, допустим) подробности заказа, стояла ПРАВИЛЬНАЯ дата. Можно на это давить.
      Просто программисты сайта, видимо, знают, что с таймзонами нужно ОЧЕНЬ аккуратно обращаться, а программисты аппликейшена — к сожалению, нет.


    1. firk
      18.10.2017 14:08

      Там дело не в экране было а в баге приложения. Хотя насчёт покупок через мобильный я всё равно согласен.


    1. Aingis
      18.10.2017 15:33

      ЗоЗПП с вами не согласится. Покупались билеты на одну дату, а получены на другую. Можно с чистой совестью расторгать договор (без каких-либо комиссий, само собой) и требовать неустойку за каждый день просрочки (плюс стандартный моральный ущерб).


      1. batja84
        18.10.2017 15:38

        Я же не говорю, что Аэрофлот прав. Естественно они должны всё возместить, т.к. явно ошибка в приложении и покупатель в этом не виноват. Но это Аэрофлот и Россия, здесь у человека нет прав, а только обязанности. Буду очень удивлён, если автору удастся выбить возврат.
        С ЗоЗПП вы явно страной ошиблись.


        1. Zashibis Автор
          18.10.2017 15:54
          +1

          Можете очень удивляться, мне бесплатно поменяли дату


          1. Dessloch
            18.10.2017 19:34

            В Аэрофлоте читают Хабр?)


            1. Zashibis Автор
              18.10.2017 20:06

              Вряд ли это была реакция на статью, скорее успели обработать претензию.


        1. firej
          18.10.2017 18:08

          ЗоЗПП самый человечный закон в России. И не только в России. И один из немногих, которые реально работают.


    1. mayorovp
      19.10.2017 08:54
      +2

      Современные тенденции дизайна заключаются в том, что на своем большом мониторе при разрешении 1920x1080 на большинстве сайтов видно столько же информации сколько на экране телефона.


      1. amarao
        19.10.2017 11:14

        Я испытываю некоторый дискомфорт от того, что у моего монитора разрешение 2560х1440, а у телефона — 3880x1440. При этом монитор 27", а телефон меньше 6".


        1. Fagot63
          19.10.2017 15:06

          Ну 4к телефон имеет смысл только для VR.


  1. MaxALebedev
    18.10.2017 14:26

    Андрей, а в этом номере бронирования вы все данные ввели фейковые? А то день рождения, email и телефон выглядят уж очень правдоподобными, в отличии от номера паспорта, как и номер участника аэрофлот бонус.


    1. Zashibis Автор
      18.10.2017 14:49

      Все реальное я закрыл квадратиками в видео и на скринах, номер паспорта конечно же фейковый. Если я где-то не закрыл — напишите мне в личку.


  1. unStaiL
    18.10.2017 16:17

    Сталкивался с подобной ошибкой в сервисе FlixBus. Там в разных интерфейсах сайта время отображалось в разных часовых поясах. Что довольно опасно особенно для времени отправки. В моем случае она смещалась на час назад. А учитывая что я ожидал автобус на промежуточной станции и он задерживался я уж было подумал что он уехал час назад :) Сообщал в поддержку но спустя месяц проблему так и не исправили.


    1. Fagot63
      18.10.2017 16:26

      Такое выносить только на публику. Тогда косяки правят чуть ли не на следующий день. Но если косяки связаны с банковскими приложениями(или там где «косяк» вызовет серьезные финансовые/репутационные потери), то стоит подстраховаться и сделать это анонимно.


      1. apple01
        18.10.2017 18:06

        Этот «косяк» тоже влечет вполне ощутимые репутационные потери.


  1. random_username
    18.10.2017 18:08

    Ошибка с датой бронирования была несколько дней на сайте Airbnb — даты в календаре были сдвинуты относительно дней недели на один день! Я бронировал на последние выходные месяца, поэтому можно было не заметить некорректные даты.

    На сайте испанских авиалиний Vueling была проблема интерфейса: селектор избранных пассажиров оставался активным после выбора пассажира на рейс, поэтому после скролла страницы вниз к оплате, менялись выбранные пассажиры — а на дальнейших шагах фамилии пассажиров не отображаются, только их кол-во — поэтому даже перепроверить перед оплатой не получилось. Таким образом я купил билеты не на свою жену, а на отца. Претензию компания никак не удовлетворила, поведения селектора не исправили, пришлось платить по-моему 50 евро за смену пассажира.


  1. Bo_K_S
    18.10.2017 18:09

    вообще немного странно: аэрофлот достаточно крупная компания и что бы у них там ничего не валилось дата должна храниться с нулевым смещением и локально приводиться во время запроса. сложно представить как у них там так получилось, если не допускать, конечно, наличия эпических размеров костылей в коде и архитектуре приложения.


    1. Kalobok
      18.10.2017 18:26
      +1

      Размер и известность компании влияют на качество программных продуктов чуть менее, чем никак. Неправильная дата в билете — это мелочь. Мне вот на днях одна известная страховка прислала полный пакет чужих документов с адресом, телефоном, паспортом и данными на машину. Клиент при регистрации на сайте по ошибке указал неправильный емейл (фамилии похожи). И это отнюдь не первый такой случай.


      1. Bo_K_S
        18.10.2017 18:37

        дело не в том, что компания большая и из-за этого там всё должно быть норм, а в том, что компания имеющая крупную сеть распределённых по миру отделений, просто должна выработать надёжный инструмент для синхронизации времени и даты.


        1. Kalobok
          18.10.2017 18:50
          +1

          Ну да, а компания, работающая с большим количеством персональных данных, просто обязана выбрать специалистов, способных обеспечить нормальную защиту этих данных. Но это только теоретически, а на практике, увы…


          1. Bo_K_S
            18.10.2017 19:14

            а в той страховой компании, когда регистрируешься, как подтверждается регистрация? Просто в большинстве сайтов это как раз делается при помощи электронной почты. Если страховая, который вы платите деньги и которая очень много о вас знает, регистрирует вас без подтверждения адресов, куда потом может выслать всякие документы-не-для-чужих, то я бы пересмотрел свои с этой компанией взаимоотношения (свалил нафиг). Но при этом, если при оформлении документов, нужно отдельно указывать адрес почты, куда отправлять результаты, тот тут компания не виновата, я бы тоже не стал делать проверку вводимого адреса — это исключительно ответственность клиента.
            Вы полностью уверены, что документы отправляются на адрес указанный при регистрации, без подтверждения этого адреса?


            1. Kalobok
              18.10.2017 19:22
              +1

              Я сам ничего не оформлял, так что не в курсе. Я знаю только, что незнакомый мне человек оформил страховку (судя по всему, на сайте), указал неправильный емейл и на этот адрес без всяких проверок были высланы все документы и одноразовый пароль для входа в кабинет. Я, кстати, потом позвонил этому клиенту (телефон-то в данных был) и объяснил, что с адресом надо быть аккуратнее.

              Правильность адреса надо проверять всегда, если речь идет о закрытой информации. Клиент может ошибиться, но это не повод отправлять его данные кому попало.

              PS Если интересно, можете сами попробовать, как подтверждается регистрация в этой компании — это РосГосСтрах, страна должна знать имена своих героев.


              1. Bo_K_S
                18.10.2017 19:51

                ну как… если клиента спросили, куда отправлять, а он и сказал, то как его проверить по вашему: сравнить с адресом из регистрации и спросить, не ошибся ли он, а потом спросить не ошибся ли он подтверждая первый раз… Если бы я был разрабом в этой конторе и мне бы поставили это в вину, я бы отмазался.
                ЗЫ Как раз хотел похвалить вас за отсутствие адресной антирекламы, но не успел))


                1. Kalobok
                  18.10.2017 20:00
                  +1

                  Можно придумать много разных способов. Например, дать клиенту адрес компании и предложить отправить туда запрос на документы. Или предложить зарегистрироваться на сайте и запросить документы из личного кабинета. Или, да, сначала отправить ему письмо с просьбой подтвердить адрес какой-то не слишком личной, но известной только клиенту информацией. Например, номером полиса.

                  Мне, если честно, трудно представить себе ситуацию, когда все оформляется только на бумаге, а документы нужно отправить на емейл, вписанный от руки. Но даже если такое случилось, адрес подтверждать нужно.

                  Исключением могут быть случаи, когда адрес используется только для неприватной информации (новости, скидки и т.п.), хотя и это не слишком правильно — подписывать на всякий мусор непричастного человека.


      1. Irker
        18.10.2017 21:21

        Маленькая компания, большая компания, известная и неизестная. А вот на мой ИНН налоговая перезаписала другого человека. Я даже случайно оплатил его налоги, а уже после заметил. Причем в ЛК были полностью все его паспортные данные, адрес и пр. На компании можно хоть как-то повлиять. А в госучереджении я исправлял последствия их ошибки больше года. Да и до сих пор не все могут исправить.


      1. andersong
        19.10.2017 11:22

        Заказывал как-то в СБ подробную выписку по счету за год. Через месяц почтой выписка пришла. Но не моя.


      1. aamonster
        19.10.2017 11:27

        Размер влияет на вероятность того, что они с этим багом уже сталкивались. Грубо говоря, приложение лучше протестировано (пользователями), чем малоизвестные.


        1. fireSparrow
          19.10.2017 13:21

          То, что бага появлялась у пользователей, ещё не гарантирует, что с ней сталкивались разработчики. А то обычно пользователь нарывается на какую-то багу, обращается в компанию, а там его либо вообще игнорируют или бюрократят, либо проблему разгребают в ручном режиме менеджеры или техподдержка, а разрабы о данном инциденте вообще не узнают.


          1. aamonster
            19.10.2017 13:28

            Мы говорим о вероятностях.

            Грубый пример: пусть вероятность словить баг 1%, вероятность того, что юзер баг зарепортит — 1%, что пробьётся через бюрократию — 1% (числа с потолка). Итого вероятность прохождения всей цепочки — один на миллион. Если у компании миллионы пользователей — есть шанс, что баг будет исправлен. Если тысячи — практически нет.

            Конечно, есть ещё много других вещей, влияющих на вероятность исправления, но «количество запусков» всё же очень значимо.


            1. fireSparrow
              19.10.2017 14:30
              +1

              Ну тут ещё накладываются то, что большой размер компании сильно коррелирует с уровнем забюрократизированности, длинной цепочки, размазыванием ответственности и переусложнённостью процедуры создания фикса.

              В маленькой компании менеджер, которому пожаловался клиент, может просто упомянуть о проблеме разработчику, столкнувшись с ним в столовой.
              В большой же компании путешествие багрепорта от недовольного клиента до разработчика — это целый квест. И если процессы выстроены не очень хорошо (а так обычно и бывает), то далеко не все баги пройдут этот квест до финальных титров.

              В больших компаниях, ориентированных на обслуживание большого потока клиентов, на первой линии поддержки часто сидят люди не разбирающиеся в тонкостях приложения, которых работодатель отнюдь не стимулирует тщательно вникать в каждую отдельную проблему. Их заставляют чётко отрабатывать скрипт общения и не задумываться лишний раз, дабы не тратить драгоценного рабочего времени. Поэтому если скрипт общения с клиентом прописан не очень хорошо, то многие жалобы будут либо блокироваться на этом уровне, либо неправильно маршрутизироваться.


    1. Valle
      18.10.2017 18:42

      Чаще всего с этим и есть проблемы что даты локально приводятся — многие телефоны тупо не обновляют базу часовых поясов по несколько лет. Правильное поведение — телефон отправляет местоположение а сервер сам вычисляет локальные даты и их присылает на клиент для отображения.


  1. marsdenden
    18.10.2017 18:09

    последний раз пытался пользоваться мобильным приложением Аэрофлота 2 года назад. Вижу, что за два года мало что изменилось, все равно без глюков не могут


  1. TyVik
    18.10.2017 18:10

    Статья «Заблуждения программистов относительно времени» будет актуальна всегда. А теперь ещё и с полом надо быть осторожным.


  1. alxt
    18.10.2017 18:22

    Ага. Больная тема. Недавно бился над кодом на js, который в начале октября час в сутки падал на тестах.
    При том, что я JS не знаю, а начало октября- не самое очевидное время для падения- было весело. Оказалось, что прокралась автралийская таймзона- там как раз на зиму переход уже был :D


    1. mwambanatanga
      19.10.2017 10:22

      в начале октября… прокралась автралийская таймзона… на зиму переход
      Может, на лето?


      1. alxt
        19.10.2017 10:37
        +1

        Да, спасибо. На лето! Но с точки зрения той баги было без разницы- там просто брался «2 недели назад» с помощью вычитания 14*24*… милисекунд и после перевода часов час в сутки дата оказывалась не та. Билд релиза в этот час не шёл, а нужен он был срочно.

        Почитал про часовые пояса в Австралии- это ж вообще трэш и угар. Мало того, что они (что логично) переводят время в противоположную (относительно Европы) сторону, так ещё у них не вся страна часы переводит, есть UTC +9:30 и (а, что вы делаете) UTC +8:45.


  1. artskep
    18.10.2017 19:27

    Это фигня, в телевещании в NTSC кадры в секундах "високосные". А еще веселуха, когда время перевода стрелок меняют (сидел в CNN правя баги в новом продукте, а мимо чуваки с рациями и матюками в серверную пробегают. Оказалось уже ночь, а в этот год как раз сдвинули правила перехода на летнее время)


    Вобщем, после подобных вещей я апплодировал стоя закону об отмене ежегодного насилования часов. Жаль, что не везде по миру


    1. mayorovp
      19.10.2017 08:59

      Жаль что этот закон приняли со второй попытки, причем между попытками закончилась поддержка Windows XP


  1. Big-Boss
    18.10.2017 19:58
    -1

    Так же влетал с «Победой», только не с датами а сменой направлений перелета.
    С начала думал, что невнимателен, но еще 3-е знакомых влетели так же.
    Причем последнего предупреждал, что подозрительно дешевые билеты, поэтому проверялось все тщательно до момента оплаты.
    Билеты покупались в разных местах, на сайте «Победы» и в авиасейлс.

    Вот так…


    1. Voenniy
      18.10.2017 23:13

      В прошлом году летели из Геленджика Победой. Выбираю дату — показывпет цену. Покупаю. Оказалось купил из Краснодара.
      Если у Победы нет билетов на это число — то они подставляют ближайший аэропорт. Изза невнимательности пришлось ехать до Краснодара и оттуда уже лететь.


  1. aamonster
    19.10.2017 08:35
    +4

    Тут вы из-за бага пострадали, а представьте себе ситуацию: вылет в 2:30, а в 3:00 переводят часы назад на 1 час (дата не меняется). Вылет в первые 2:30 или во вторые?


    1. Drakoninarius
      19.10.2017 18:38

      вылет в 23:30 UTC


      1. aamonster
        19.10.2017 19:51

        Если я правильно помню, в билетах время вылета и прилёта ставится по местному.


        1. TheGodfather
          20.10.2017 10:57

          Ну как раз пример же привели, когда "по местному" одно и то же время встречается дважды.


          1. aamonster
            20.10.2017 11:24

            Не совсем — билет в посте _может_ быть корректно и однозначно выдан с датами прилёта/вылета по времени аэропортов (время и вылета, и прилёта — однозначное). Я же говорил про ещё худшую проблему — когда дважды встречающееся местное время фигурирует в самом билете. И этого нельзя избежать при текущих правилах выдачи билетов, разве что переделать их, как предложил Drakoninarius.


    1. ainoneko
      21.10.2017 11:12

      Решение очевидно: в этот час (на самом деле в два часа) не летать совсем.
      (Как у РЖД при переводе в одну сторону поезда тупо час стояли, а в другую — старались догнать расписание за ночь.)


      1. aamonster
        21.10.2017 11:33

        Подозреваю, что так и делается. Криво, но это меньшее из зол.


  1. VitalyNasennik
    19.10.2017 13:44

    Я как-то раз разбирался со шкалами времени… Пришёл к выводу, что в компьютере время надо учитывать в шкале TAI или TT, а к ширпотребному времени UTC (да ещё с поясами!) и обратно приводить при помощи подпрограмм конверсии из библиотеки SOFA (Standard of Fundamental Astronomy). Я, правда, немножко покурочил библиотеку, добавив автоматическое вычисление leap seconds из файла с EOP (Earth Orientation Parameters), но это уже мелочи. Это единственный, известный мне, способ корректно работать со временем.


  1. green_tree
    19.10.2017 13:51

    Пару месяцев назад тоже покупал билет у Аэрофлота, решил не качать мобильное приложение и воспользоваться мобильной версией сайта. На поле «Дата Рождения» нельзя выбрать год, его можно только скролить и отсчёт идёт шел с 1900 =)
    И под скролить я имею в виду по месяцам…
    Писал им, ничего не ответили, пришлось качать приложение для покупки билета :|


  1. ainoneko
    21.10.2017 11:19

    А где-нибудь вообще что-нибудь нормально сделано?
    Недавно пытался купить билет на сайте «Уральских авиалиний»: сайт упорно считал меня роботом на разных этапах, предлагал капчу и после правильного ввода отсылал на начало.

    Купить удалось только зайдя туда с нетбука с Виндоуз: видимо, по их мнению, Линуксом пользуются только роботы и злые хакеры.

    (Пару лет назад на сайте другой авиакомпании не было https.)