Все статьи
10 сентября 2026 г.·5 мин чтения

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 в любом агенте работают на своих условиях.