Ответ не похож на HTTP
ERR_INVALID_RESPONSE показывается, когда получено что-то, что браузер не смог разобрать как корректный HTTP-ответ. Это может быть некорректная строка статуса, повреждённые заголовки, недопустимое сочетание полей или мусор вместо данных.
Обратите внимание на отличие от ERR_EMPTY_RESPONSE, где пришло ничего. Здесь данные есть, но они нарушают правила протокола. Поэтому на роль подозреваемых попадают программы, формирующие ответ на лету: веб-сервер, промежуточный сервер, балансировщик, само приложение, а также локальные фильтры, изменяющие содержимое.
Если ошибка возникает на странице с формой или личным кабинетом, попробуйте выйти из аккаунта и войти заново: повреждённая сессия иногда порождает ответ, который приложение формирует некорректно.
Что чаще всего вызывает
Со стороны сервера — ошибки скриптов, которые выводят служебный текст до заголовков, некорректные значения в заголовках, несовместимые настройки промежуточного сервера и сжатия, неправильный порядок обмена при переходе на другую версию протокола. Хостинги с устаревшим оборудованием иногда отвечают нечитаемыми данными при перегрузке.
Со стороны клиента — антивирус или промежуточный сервер, подменяющие ответ, повреждённый кеш браузера, расширения, изменяющие заголовки, и устаревшая версия браузера. Реже сеть вносит ошибки в данные по пути, но при шифровании это приводит скорее к обрыву, чем к некорректному ответу.
Последовательность проверки
Выполните жёсткое обновление страницы и очистите кеш. Проверьте режим инкогнито. Затем откройте адрес в другом браузере и на другом устройстве, желательно через другую сеть. Если сбой везде, подозревайте сервер. Если только у вас, проверяйте локальное окружение.
Обратите внимание, где именно возникает ошибка: при загрузке основной страницы или отдельного запроса, например API или изображения. Панель разработчика на вкладке сети покажет, какой из запросов завершился ошибкой, что сузит поиск до конкретного скрипта или эндпоинта.
Что можно исправить
Отключите расширения, очистите данные сайта, обновите браузер. Временно отключите промежуточный сервер и веб-защиту антивируса: если ошибка исчезла, причиной был фильтр. Перезагрузите роутер, особенно при ошибках на нескольких ресурсах.
Если проблема в приложении, которое вы разрабатываете, проверьте, что до отправки заголовков ничего не выводится в поток, что коды статуса и заголовки корректны, а пропускная способность промежуточного сервера не превышена. Полезно посмотреть на сырой ответ сервера утилитами командной строки и убедиться, что он читаем.
Когда ждать исправления
Если ошибка одинакова у всех и вы не управляете сайтом, вероятно, идёт технический сбой или неудачное обновление. Такие ситуации обычно устраняются в течение нескольких часов. Полезно уведомить поддержку сайта, указав адрес страницы, время и используемый браузер.
Если ошибка возникает только на одном компьютере и после всех проверок сохраняется, создайте новый профиль браузера или переустановите его: это исключает повреждённые настройки. Если сайт принадлежит вашей организации, откатите последние изменения конфигурации и сравните ответы до и после: разница в заголовках обычно показывает источник за несколько минут.
Что показывает панель разработчика
Откройте инструменты разработчика до загрузки страницы и вкладку сети. Найдите запрос с ошибкой и посмотрите заголовки: строка статуса, набор полей, тип содержимого и размер. Если размер равен нулю или заголовки выглядят необычно, вы видите проблему сервера или промежуточной программы.
Иногда помогает включить сохранение журнала запросов и воспроизвести шаги, ведущие к ошибке. Так можно заметить, что ломается лишь один запрос из цепочки, например авторизации, и понять, при каких условиях.
Сравните заголовки успешного и неудачного запросов: разница в cookie, языке или заголовках, добавляемых расширениями, часто указывает на источник. Для отчёта сохраните запись сетевых запросов в файл и приложите к обращению, убрав из неё личные данные и токены доступа.
Для собственных приложений включите журналирование заголовков ответа на промежуточном узле. Когда ошибка повторится, вы сразу увидите, что именно отправлено клиенту, и не будете гадать, исказил ли ответ промежуточный сервер или его сформировало приложение.