Ошибки
Ошибки возвращаются в формате того протокола, по которому пришёл запрос. При потоковой передаче ошибка, случившаяся после начала ответа, приходит событием внутри потока.
401 — ключ не принят
Ключ неверный, отозван или передан не тем заголовком. Проверьте, что ключ скопирован целиком и стоит в x-api-key либо Authorization: Bearer.
Отдельный случай: клиент раньше входил аккаунтом Anthropic или OpenAI и ходит по сохранённому токену вместо нашего. В Claude Code лечится командой /logout.
403 — модель недоступна для ключа
Имя модели не входит в список разрешённых. Обычно это опечатка либо совсем незнакомое имя. Проверьте список: GET https://api.justcode.lol/v1/models. Большинство привычных чужих имён мы принимаем — см. псевдонимы.
400 — запрос слишком длинный
Контекст превысил окно модели. Сожмите историю или возьмите модель с большим окном (см. Лимиты). Перебор источников в этом случае не делается: ошибка в самом запросе, и повтор её не исправит.
402 — недостаточно средств
Баланс исчерпан. Пополните его в кабинете на https://justcode.lol.
502 — источник вернул некорректный ответ
Вышестоящий провайдер оборвал поток или вернул пустой ответ. Шлюз уже перебрал доступные каналы и не нашёл рабочего. Обычно это кратковременно — повторите запрос. Ответ без единого токена мы клиенту не отдаём и денег за него не берём.
524 или обрыв на середине длинного ответа
Соединение разорвал защитный прокси домена justcode.lol (потолок 120 секунд). Перейдите на api.justcode.lol — там этого потолка нет. Установщик прописывает правильный адрес автоматически.
Ответ приходит, но пустой
Такое бывает, когда клиент работает с выключенным стримингом на нестабильной сети. Включите потоковый режим: он же решает проблему с длинными ответами.
Куда писать
Если ошибка повторяется — поддержка в личном кабинете на https://justcode.lol. Полезно приложить точное время запроса, имя модели и текст ошибки: по ним запрос находится в логах.