OpenCode не работает: Forbidden, Free usage exceeded и ошибки API
Как найти причину ошибок OpenCode: проверить провайдера и модель, отличить исчерпанную квоту от сбоя подключения и собрать полезный лог без потери настроек.
Бывает так: OpenCode спокойно открывает проект и падает на первом же запросе. Переустановка тут почти никогда не помогает. Обычно дело в выбранной модели, квоте провайдера или адресе локального сервера. Первым делом раскрой ошибку полностью и сохрани её: в строчке из уведомления часто нет самого полезного.
Ниже речь про обычный OpenCode CLI и его провайдеров, инструкции сверены с документацией
7 сентября 2026 года. Одно и то же сообщение бывает по разным причинам, поэтому не угадывай
решение по одному слову Forbidden.
Сначала пойми, на каком участке сбой
| Что видишь | Что проверять |
|---|---|
command not found | Установку команды и PATH: запрос до модели ещё не дошёл |
Cannot connect to API, connection refused, timeout | Адрес сервера, работающий процесс, сеть и прокси |
Forbidden или 403 | Ответивший сервис, доступ к модели и права аккаунта |
Free usage exceeded или 429 | Тип лимита и провайдера, на которого реально ушёл запрос |
| Ответ есть, но агент не выполняет действия | Поддержку инструментов, контекст и разрешения |
Таблица подсказывает, откуда начать, но диагноза не ставит. Forbidden без адреса сервиса,
который его вернул, ещё не значит, что программу заблокировали в России.
Проверь провайдера и полный ID модели
Открой /models. Модель в OpenCode задаётся парой provider_id/model_id, и одно знакомое
название может вести к разным сервисам. Документация моделей
описывает, откуда берётся выбор: сначала параметр запуска --model, потом конфигурация,
потом последняя использованная модель. Настройки отдельных агентов проверь тоже.
Запиши версию OpenCode, провайдера, полный ID модели, текст ошибки и время. Потом открой новую сессию и отправь короткий запрос без рабочих файлов и длинной истории. Прошёл — ищи причину в контексте или конкретном инструменте. Упал так же — разбирайся с подключением.
Ключ, модель и конфиг меняй по одному. Если поменять всё сразу и заработает, ты не узнаешь, что помогло, и не повторишь это на другой машине.
Free usage exceeded: почему оплата помогает не всегда
Сообщение Free usage exceeded, subscribe to Go пользователи OpenCode видят регулярно, в том
числе на самом первом запросе. Так что
надпись сама по себе не доказывает, что квота кончилась. Сверь её с кабинетом и посмотри,
через какого провайдера ушёл запрос.
Если Go уже оплачен, проверь, не выбрана ли где-то бесплатная модель другого маршрута. В
issue про подагентов ровно такой случай:
подписка активна, а вспомогательные запросы идут в opencode/deepseek-v4-flash-free. Это
наблюдение одного пользователя, универсальным рецептом его не назовёшь, но начать разумно
с него.
Не шли один и тот же запрос по кругу. Посмотри расход в кабинете и сверь провайдеров основного и вспомогательных запросов. Если интерфейс показывает, когда обновится квота, дождись. Если кабинет говорит одно, а ошибка другое, напиши в поддержку и приложи время сбоя и обезличенный кусок лога. Ещё одна оплата тут вряд ли что-то прояснит.
Чем баланс отличается от подписки, разобрано отдельно: OpenCode Go и Zen.
Forbidden и Forbidden model: смотри, какая модель ответила
При 403 сначала выясни, кто отказал: Zen, другой облачный API или шлюз посередине. Потом
сравни модель в интерфейсе с моделью в тексте ошибки. В
трекере OpenCode есть случай, где отказ
ссылался на big-pickle, хотя пользователь выбирал совсем другие модели. Верь модели в
ошибке, а не названию вверху чата.
Если ID разные, проверь, какая модель стоит у агента и у вспомогательных задач. Если совпадают, уточни, доступна ли эта модель твоему аккаунту и не поменялся ли каталог провайдера. Имя из чужого старого конфига рабочим не считай.
Для запросов через OpenRouter есть отдельный разбор его ошибок.
Если в ошибке стоит адрес openrouter.ai, иди туда. Слово OpenCode в интерфейсе ещё не
делает сбой ошибкой Zen.
Cannot connect to API: локальный сервер и прокси
Для локального подключения проверь, что сервер модели правда запущен и слушает адрес из
конфига. В официальном примере Ollama-провайдера
это http://localhost:11434/v1, но так выглядит адрес именно Ollama, у другого сервера он
будет своим. Имя модели должно совпадать с тем, что установлено на сервере.
С Docker, WSL и второй машиной localhost путает всех. Это всегда та среда, откуда идёт
соединение. Помогает буквально выписать цепочку: где запущен OpenCode, где работает сервер и
по какому адресу первый видит второго.
OpenCode учитывает переменные прокси, и документация Network
требует исключать локальный сервер через NO_PROXY. Для текущей сессии в macOS или Linux:
export NO_PROXY=localhost,127.0.0.1
Если в переменной уже есть корпоративные исключения, допиши адреса к ним. И не отключай
проверку TLS, чтобы убрать ошибку сертификата: для корпоративного центра сертификации там же
описан NODE_EXTRA_CA_CERTS.
Где лежит лог и что отправить в поддержку
Руководство по диагностике называет каталоги
логов: ~/.local/share/opencode/log/ в macOS и Linux и
%USERPROFILE%\.local\share\opencode\log в Windows. Подробный лог включается так:
opencode --log-level DEBUG
Воспроизведи сбой один раз на нейтральном запросе и сохрани несколько строк вокруг ошибки.
Поддержке обычно хватает версии, ОС, провайдера, ID модели, времени и результата короткой
проверки. Ключи, токены, код проекта и личные пути вычисти. auth.json не прикладывай вообще,
в нём лежат данные авторизации.
Историю и конфиг сгоряча не стирай: как раз по ним причина часто и находится. Полный сброс делай, только когда понимаешь, что именно удалится и как вернуть нужное.
Когда переходить на локальную модель
Если облачный доступ регулярно рвёт работу, можно подключить Ollama к OpenCode. Генерация перестанет зависеть от чужой квоты, зато появятся ограничения памяти, скорости и самой модели. Ошибки установки или локальной сети это, понятно, не лечит.
Если удобнее графический интерфейс, попробуй Доку с локальной моделью. Дай обоим вариантам одну и ту же небольшую задачу и сравни результат. Только учти, что внешние инструменты и облачные API в любом агенте работают на своих условиях.