Задача была банальная: купить билеты семье на поезд. Двое взрослых, ребёнок, маршрут Петропавловск — Курган. Я с сайтами и формами работаю каждый день. И всё равно потратил два часа — и так и не оформил онлайн.
Рассказываю не чтобы поныть на КТЖ. Этот случай — готовый учебник, как одна мелочь в интерфейсе тихо сливает ваши продажи. И в вашем бизнесе она почти наверняка тоже есть.
Стена из четырёх цифр
Дохожу до шага оплаты — и сайт выдаёт: ktj.mg.error.1092040. Всё. Голый код. Какой пассажир не так, какое поле, что делать дальше — ни слова. Как будто это я что-то сломал и теперь должен сам догадаться, что именно.
Я не сдался и полез внутрь. Вытащил полный ответ сервера — почти 200 КБ кода. Думал, расшифровка спрятана где-то там. Нет. Система отдаёт только этот код и больше ничего. То есть понять причину пользователю физически нечем — её прячут.
Разгадка нашлась не на сайте, а в новостях
Оказалось, с 20 января 2026 года ребёнку до 14 лет для пересечения границы нужен собственный загранпаспорт — свидетельство о рождении больше не принимают. Скорее всего код словил именно документ ребёнка.
Но сайт не сказал об этом ни слова. Ни до ввода данных, ни в момент ошибки, ни после. Правило поменялось — а форма покупки об этом молчит.
Вот тут и начинается разбор, ради которого статья.
1. Ошибка без человеческого текста — это баг продукта, а не клиента
Хороший сервис пишет: «На ребёнка до 14 лет нужен загранпаспорт, свидетельство не подходит». Плохой — кидает error.1092040 и уходит в туман.
Код — для разработчика. Текст — для человека. Если наружу торчит код, продукт просто не дописали. Клиент в этот момент чувствует не «я ошибся», а «меня послали».
2. Скрытые условия = брошенные корзины
Требование к документам изменилось, но на форме об этом ноль предупреждений. Человек узнаёт о правиле в самый дорогой момент — когда уже потратил время и достал карту.
В обычном бизнесе это деньги, которые утекают молча. Никто не пишет вам «я ушёл из-за того, что условие всплыло на оплате». Просто закрывают вкладку.
3. Онлайн, который выталкивает в офлайн
Финал любой ошибки на сайте — «позвоните 1433 или подойдите в кассу». Стоп. А зачем тогда сайт, если в сложном случае он отправляет меня ровно туда, откуда цифровизация должна была меня увести?
4. Мелочи, которые добивают
- Время отправления показано по Москве, хотя поезд идёт по местному. Перепутал на два часа — считай, опоздал.
- Старый аккаунт посреди оплаты вдруг потребовал заново подтвердить номер по SMS.
- Место «можно указать только диапазоном» и не гарантируется до оплаты.
По отдельности — ерунда. Вместе — ощущение, что продукт не любит своего пользователя.
Теперь откройте свой чек-аут
Пройдите свою форму заказа как клиент, а не как владелец. И честно ответьте на три вопроса:
- Каждая ошибка говорит, что сделать, или просто пугает кодом и «что-то пошло не так»?
- Все условия — документы, ограничения, доп. требования — человек видит до оплаты или узнаёт в момент платежа?
- Если клиент застрял, он может закончить сам, или вы выталкиваете его в звонок и переписку?
Самый честный тест дешевле любой аналитики: дайте задачу незнакомому человеку, сядьте рядом и молча смотрите, где он спотыкается. То, что вам кажется очевидным, для него — стена с кодом 1092040.
Проблема КТЖ не в том, что появились правила. Правила — это нормально. Проблема в том, что система прячет причину и заставляет человека играть в детектива на этапе, где он готов был заплатить.
Не повторяйте это в своих продуктах.
А где вас бесили такие формы? Скидывайте в комментарии — соберём антирейтинг и разберём, как должно быть.
Забери разбор: 5 прибыльных ниш Kaspi — лето 2026
Оставь почту — пришлю гайд и буду слать еженедельные разборы Kaspi, WB и Ozon. Без спама, потому что одна непросчитанная комиссия съедает прибыль за месяц.
Я сам начинал с нуля и собрал весь путь по Kaspi в один курс. От регистрации магазина до первых стабильных продаж, без года ошибок. Хочешь короткую дорогу, она здесь.
Мой курс по Kaspi магазину →


