# Устранение неполадок (/ru/docs/troubleshooting)

Когда отправка не удалась, в области ответа появляется **Эха нет** с объяснением простыми словами, что пошло не так, и
советом, что попробовать. **Повторить** отправляет запрос ещё раз. Исходная ошибка остаётся на вкладке **Передача**.
Найдите своё сообщение ниже.

<Shot id="troubleshooting-no-echo" alt="Неудавшаяся отправка: в области ответа написано «Эха нет», «Соединение отклонено: localhost:9 не принимает подключения» и кнопка «Повторить»" />

## Подключение [#connecting]

<Accordions type="single">
<Accordion title="Соединение отклонено: … не принимает подключения">

Компьютер сервера ответил, но ни одна программа не принимает соединения на этом порту.

- Проверьте, что сервер запущен и что порт совпадает с указанным в адресе. Локальный сервер на `3000` недоступен по
  адресу `localhost:8080`.
- Проверьте адрес после подстановки переменных: задержите указатель на метке `{{variable}}`, чтобы увидеть её значение,
  и посмотрите в заголовке страницы, какое окружение активно.
- Сервер внутри Docker или виртуальной машины требует, чтобы его порт был проброшен на Mac.

</Accordion>
<Accordion title="Не удаётся найти хост …">

Имя не разрешается в адрес. Проверьте написание, сеть и VPN. Хосту, который существует только внутри корпоративной сети,
нужна эта сеть или её VPN.

</Accordion>
<Accordion title="Ответ не получен вовремя: … / Не удалось вовремя подключиться: …">

**Ответ не получен вовремя** значит, что соединение установилось, но ответ шёл дольше тайм-аута запроса. Если сервер
медленный, увеличьте **Тайм-аут** на вкладке **Настройки** запроса. **Не удалось вовремя подключиться** значит, что само
соединение не открылось: виноват брандмауэр, VPN или сервер не работает.

</Accordion>
<Accordion title="Нет ответа: … закрыл соединение, оставленное открытым">

Echolot повторно использует открытые соединения. Сервер закрыл одно из них как раз в тот момент, когда уходил запрос, и
ответ не пришёл.

Запросы, которые можно отправлять дважды (GET и другие безопасные или идемпотентные методы, а также запрос с
заголовком `Idempotency-Key`), Echolot сам повторяет один раз на новом соединении. Остальные, например POST, не
повторяются, потому что сервер мог уже применить запрос: проверьте, прежде чем отправлять его снова.

</Accordion>
<Accordion title="Недоступен: … / Соединение сбросил …">

**Недоступен** значит, что у сети нет маршрута к серверу: проверьте Wi-Fi, сеть и VPN. **Соединение сбросил** значит, что
сервер или что-то на пути оборвало его, часто это брандмауэр или сервер, не принимающий протокол (например, обычный HTTP,
отправленный на порт HTTPS).

</Accordion>
<Accordion title="429 Too Many Requests от demo.echolot.dev">

[Демо-API](/docs/tutorials/demo-api) общее и ограничивает каждый адрес 120 запросами в минуту, а для больших, медленных
и потоковых эндпоинтов (экспорт, `bytes`, `delay`, WebSocket и SSE) — 10 в минуту. Подождите столько секунд, сколько
указано в заголовке ответа `Retry-After`, и отправьте снова. Запуск в Прогоне со многими итерациями против демо быстро
упирается в предел; уменьшите число итераций.

</Accordion>
</Accordions>

## TLS и сертификаты [#tls-and-certificates]

<Accordions type="single">
<Accordion title="Сертификат … не является доверенным">

Сертификат сервера самоподписанный, просрочен или не подписан центром, которому доверяет ваш Mac. Сообщение говорит,
какой из случаев.

- Для корпоративного или разработческого центра добавьте его сертификат CA для этого хоста в
  **Настройки рабочего пространства › Сертификаты**, а не отключайте проверки. См. [Настройки запроса](/docs/requests/settings).
- Только для сервера разработки выключите **Проверять TLS-сертификаты** на вкладке **Настройки** запроса.

</Accordion>
<Accordion title="Сертификат … выдан для другого имени хоста">

Сертификат действителен, но называет другой хост. Используйте имя хоста, для которого сделан сертификат, или исправьте
сертификат на сервере.

</Accordion>
<Accordion title="Не удалось установить защищённое соединение с … (TLS handshake)">

Рукопожатие TLS с сервером не удалось. Текст после двоеточия — собственная причина библиотеки TLS. Частая причина —
сервер, которому нужен клиентский сертификат: добавьте его для этого хоста в
**Настройки рабочего пространства › Сертификаты**.

</Accordion>
<Accordion title="Файл клиентского сертификата … не существует / не является сертификатом PEM">

Настройки сертификата указывают на файл, который переместили, или на файл другого формата. Выберите файл заново в
**Настройки рабочего пространства › Сертификаты**; Echolot читает сертификаты PEM.

</Accordion>
</Accordions>

## Прокси [#proxies]

<Accordions type="single">
<Accordion title="Запросы не идут через мой прокси или идут через тот, через который не должны">

Это решает **Настройки › Сеть › Прокси**:

| Выбор | Значение |
| --- | --- |
| **Системные настройки** | Прокси HTTP, HTTPS и SOCKS из «Системные настройки › Сеть», с их исключениями. Автоматическая настройка прокси (PAC) не используется. |
| **Нет** | Каждый запрос подключается напрямую. |
| **Вручную** | Прокси HTTP, HTTPS и SOCKS5, которые вы вводите, с полями **Имя пользователя**, **Пароль** (хранится в связке ключей) и **Напрямую к** для хостов, которые его пропускают. |

Рабочее пространство может задать свой прокси в **Настройки рабочего пространства › Прокси**, и он главнее прокси
приложения. Если ваша компания использует файл PAC, введите его прокси в **Вручную**. Инструмент командной строки
читает `HTTPS_PROXY`, `HTTP_PROXY` и `NO_PROXY`.

</Accordion>
<Accordion title="Прокси … требует учётные данные (407)">

Прокси требует войти. Добавьте **Имя пользователя** и **Пароль** к прокси в **Настройки › Сеть** или в настройках прокси
рабочего пространства.

</Accordion>
<Accordion title="Прокси … отказался подключаться к … / Прокси SOCKS … не удалось подключиться к …">

Прокси работает, но не хочет или не может добраться до этого сервера: его правила блокируют доступ или сервер
недоступен оттуда, где находится прокси. Если сервер локальный или внутренний, добавьте его в **Напрямую к**.

</Accordion>
</Accordions>

## HTTP/3 [#http3]

<Accordions type="single">
<Accordion title="HTTP/3 требует macOS 27 или новее">

HTTP/3 работает на macOS 27 и новее. На более старой macOS выберите **HTTP/2** или **Автоматически** на вкладке
**Настройки** запроса.

</Accordion>
<Accordion title="HTTP/3 не работает через прокси / пока не может использовать свои файлы CA и клиентские сертификаты">

Echolot не отправляет HTTP/3 через прокси (включая системный, как это делают браузеры), со своими файлами CA и с
клиентскими сертификатами. Выберите для этого запроса **HTTP/2** или **Автоматически**. При **Автоматически** Echolot
сам переходит на HTTP/3 только тогда, когда сервер его предлагает и ничто не мешает, и возвращается к TCP, если
соединение QUIC не открывается.

</Accordion>
</Accordions>

## MCP-серверы [#mcp-servers]

<Accordions type="single">
<Accordion title="Локальный (stdio) MCP-сервер не запускается">

В проверке сервера **Сервер запускается** отмечен как неудавшийся.

- **Сначала одобрите его.** Echolot запускает команду локального сервера только после того, как вы одобрите её
  командой **Доверять и проверить** на странице «MCP-серверы». Пока этого нет, вызовы сообщают `Echolot has not started the
  MCP server “…” before. Review its command on the MCP Servers page and trust it first.` Изменение команды, аргументов
  или окружения спрашивает снова.
- **Команда не найдена.** Подсказка гласит `Check that “npx” is installed and on the PATH, or give its full path.`
  Echolot запускает серверы с PATH вашей оболочки входа, поэтому `npx`, `uvx` и шимы менеджеров версий, которые работают
  в новом окне Терминала, работают и в Echolot. Если команда работает только после того, что ваша оболочка делает
  интерактивно, укажите её полный путь (найдите его командой `which npx` в Терминале).
- **Запускается и останавливается.** Выполните ту же команду в Терминале, чтобы понять причину; вывод ошибок сервера
  есть и в журнале сообщений.

См. [Добавление серверов](/docs/mcp-servers/adding-servers).

</Accordion>
<Accordion title="… — MCP-сервер, который работает как локальная программа, а Echolot не может запускать здесь программы">

Вы в редакции для Mac App Store, которая не может запускать программы на вашем Mac. Сервер остаётся в рабочем
пространстве. Добавьте сервер по HTTP, если он это поддерживает, запустите его инструментом командной строки
(`echolot mcp check -- <command>`) или воспользуйтесь загрузкой с сайта. См. [Редакции](/docs/get-started/editions).

</Accordion>
<Accordion title="HTTP MCP-сервер завершается с ошибкой Authorization или Server reachable">

Строка с подсказкой в проверке говорит, что делать: **Войти** для сервера, который просит OAuth, заголовок
`Authorization` для сервера, которому нужен токен, или правильный путь (эндпоинты MCP часто `/mcp`) при ответе 404.

</Accordion>
</Accordions>

## Файлы и скрипты [#files-and-scripts]

<Accordions type="single">
<Accordion title="Echolot не может прочитать «…»">

В редакции для Mac App Store Echolot может прочитать файл вне рабочего пространства только после того, как вы его
выбрали. Так бывает с телом, передаваемым потоком из файла, частью формы, клиентским сертификатом или файлом `.proto`,
путь к которому записан вне Echolot. Выберите **Разрешить доступ…** в неудавшемся ответе, укажите файл и отправьте
снова; Echolot запомнит его.

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

</Accordion>
<Accordion title="Здесь запускаются скрипты, которые Echolot ещё не запускал на этом Mac">

У запроса, его папки или рабочего пространства есть скрипты, пришедшие откуда-то ещё: из импорта, `git pull` или правки
вне Echolot. Они выполняются только после того, как вы им доверитесь. Выберите **Просмотреть скрипты…**, прочитайте их и
доверьтесь им. См. [Скрипты и тесты](/docs/requests/scripts-and-tests).

</Accordion>
<Accordion title="Не удалось сохранить запрос">

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

</Accordion>
<Accordion title="Этот запрос изменился на диске">

Другое приложение или Git изменили файл, пока во вкладке были несохранённые правки. **Взять с диска** отбрасывает ваши
правки и загружает файл; **Оставить мои** сохраняет ваши правки и записывает их поверх файла.

</Accordion>
<Accordion title="macOS просит доступ к элементу связки ключей">

Элемент создала другая копия Echolot, другая редакция или инструмент командной строки. macOS спрашивает один раз на
элемент; выберите **Всегда разрешать**.

</Accordion>
</Accordions>

## Приложение и инструмент командной строки [#the-app-and-the-command-line-tool]

<Accordions type="single">
<Accordion title="Срок действия этой беты истёк">

Выпущенные бета-сборки загрузки с сайта перестают работать через 30 дней после выхода или раньше, если разработчик
завершает сборку. Скачайте последнюю с [echolot.dev](https://echolot.dev) и установите поверх старой: ваши рабочие
пространства откроются как есть. Если предупреждение говорит, что дата на этом Mac выглядит неверной, часы отстают
больше чем на сутки от даты, которую Echolot уже видел: установите дату и время в Системных настройках. См.
[Установка](/docs/get-started/install#beta-builds-expire).

</Accordion>
<Accordion title="echolot: command not found">

Инструмента командной строки ещё нет в вашем PATH. Выберите **Echolot › Установить инструмент командной строки…**, затем
откройте **новое** окно Терминала (открытое сохраняет прежний PATH).
**Настройки › Основные › Инструмент командной строки** показывает, где находится ссылка; если там предупреждение, ссылка указывает на копию Echolot, которую
переместили: выберите **Переустановить**. В редакции для App Store установите инструмент отдельно; см.
[Инструмент командной строки](/docs/cli).

</Accordion>
<Accordion title="Секреты пусты в инструменте командной строки или в CI">

Без связки ключей (Linux, CI или `ECHOLOT_KEYCHAIN=0`) инструмент читает секреты из переменных окружения с именами
`ECHOLOT_SECRET_<NAME>`, например `ECHOLOT_SECRET_PASSWORD` для секретной переменной `password`. Задайте их в настройках
секретов вашей CI. См. [CI](/docs/cli/ci).

</Accordion>
<Accordion title="Echolot не удалось создать хранилище в …">

Echolot не смог создать папку хранилища, обычно из-за нехватки места или прав. До перезапуска Echolot ответы хранятся во
временной папке. Освободите место или исправьте права папки (**Настройки › О программе › Ответы и история › Показать в
Finder** показывает, где она), затем перезапустите.

</Accordion>
</Accordions>

## Всё ещё не получается [#still-stuck]

**Справка › Сообщить об ошибке** открывает новый issue на GitHub с уже заполненными версиями Echolot и macOS. Если
Echolot вылетел, приложите его отчёт: **Настройки › Конфиденциальность › Собирать отчёты о сбоях** (включено по
умолчанию) хранит их на этом Mac, а **Показать в Finder** открывает папку.
