Ошибка context deadline exceeded в Happ: таймаут ядра и решение
Что значит «context deadline exceeded» в логе Happ — ядро само перестало ждать: DNS, рукопожатие или медленный канал. Чем отличается от i/o timeout и что сделать.
Подписка для Happ — 3 дня бесплатно, дальше от 189 ₽
Выберите срок и оформите подписку у сервиса Вятка: ссылка придёт на почту или в Telegram сразу и добавится в приложение одной кнопкой. Первые 3 дня — бесплатно, без карты.
- Ссылка-подписка приходит сразу после оплаты — обычно меньше минуты
- Одна ссылка на все устройства, где стоит Happ (до 3)
- Оплата по СБП, без автосписаний
- 3 дня бесплатно, карта не нужна
context deadline exceeded — родственник i/o timeout, но с другого уровня. i/o timeout пишет сетевой транспорт: пакеты ушли, ответа нет. context deadline exceeded пишет само ядро Xray или sing-box: «я поставил себе срок на операцию, срок вышел». Операция может быть любой — DNS-запрос, рукопожатие, ожидание первого байта, обновление подписки. Поэтому эта строка чуть менее конкретна, зато в логе рядом почти всегда написано, какая именно операция не уложилась.
Как выглядит и что означает
| Как выглядит в логе | Что означает | Что делать |
|---|---|---|
dial tcp: lookup example.com: … context deadline exceeded | Не успел DNS: адрес сервера по домену не разрешился | Проверить DNS в Happ, сменить сеть, DNS resolve failed |
failed to dial … > context deadline exceeded | Соединение с сервером не установилось за отведённое время | То же, что при timeout: обновить подписку, другой сервер |
handshake … context deadline exceeded | Сервер отвечает, но рукопожатие тянется бесконечно — сеть его «душит» | Другой сервер или протокол, сменить сеть |
fetch subscription: context deadline exceeded | Не успела загрузиться подписка | Обновить через другую сеть, отключить другой туннель |
| Ошибка на всех серверах при очень медленном интернете | Канал есть, но слишком медленный для таймаутов ядра | Дождаться нормальной сети, выбрать ближайший сервер |
Решение по шагам
- Прочитайте строку целиком. Слово
lookup— это DNS;dial— соединение;handshake— TLS;subscription/fetch— ссылка. От этого зависит, что чинить. - Обновите подписку и переключитесь на сервер с минимальной задержкой по кнопке «проверить задержку». Медленный сервер не укладывается в срок там, где быстрый успевает.
- При
lookup— переключите DNS в настройках Happ на публичный (1.1.1.1,8.8.8.8или DoH) либо укажите сервер по IP, если сервис даёт такой вариант. - Смените сеть. Мобильный вместо Wi-Fi или наоборот. Если в одной сети ошибка, а в другой нет — это оператор: ошибка только в мобильной сети.
- Отключите другой туннель, прокси и «защищённый DNS» в системе и браузере — они удлиняют путь пакетов, и ядро перестаёт укладываться в срок.
- Проверьте загрузку устройства. На старом телефоне с сотней фоновых приложений ядро может физически не успевать; закройте лишнее и повторите.
Подписка для Happ, которая просто работает
Ссылка-подписка от Вятка: добавляется в Happ одной кнопкой, работает на телефоне, компьютере и телевизоре, продлевается когда захотите.
- без карты
- все устройства по одной ссылке
- отмена не нужна — просто не продлевайте
Почему ядро «не дожидается»
У каждой операции внутри Xray есть лимит — обычно несколько секунд. Он рассчитан на нормальный интернет: сервер отвечает за десятки миллисекунд, DNS — быстрее. В сети, где оператор специально замедляет соединения к «незнакомым» адресам, или на перегруженном узле рукопожатие растягивается, и ядро сдаётся раньше, чем сервер ответит. Так что context deadline exceeded часто означает не «сервер мёртв», а «сервер медленный именно отсюда». Другой сервер того же сервиса, ближе к вам или на другом протоколе, обычно проходит. У Вятка серверов несколько, и «Автовыбор» в Happ подберёт тот, что отвечает.
Чем context deadline exceeded отличается от i/o timeout?
i/o timeout — от сети: ответа нет. context deadline — от ядра: операция в целом не уложилась в срок. Причины похожи, но context deadline чаще указывает на DNS или медленную сеть, а не на мёртвый сервер.
Можно ли увеличить таймаут в Happ?
В настройках приложения — нет; это параметры ядра. Практичнее убрать причину задержки: ближний сервер, нормальный DNS, отключённый второй туннель.
Ошибка только при обновлении подписки, серверы подключаются
Домен ссылки-подписки отвечает медленно или фильтруется в вашей сети. Обновите через другую сеть — серверы после этого будут работать и там, где обновление не проходило.
Осталось проверить на практике: подписка для Happ на 3 дня бесплатно, без карты. Ссылка приходит сразу и добавляется в приложение одной кнопкой.
Получить подписку →