Постмортем: Ошибки биллинга Claude Max + OpenClaw из-за устаревшего OAuth и изолированных задач cron

Самостоятельно размещенный OpenClaw с Claude Max начал возвращать ошибку billing error — API key has run out of credits, несмотря на то, что квота была далеко не исчерпана. Два дня отладки выявили две первопричины и цепочку, из-за которой отказ выглядит случайным.
Причина 1: Устаревший OAuth-токен портит весь провайдер
В файле auth-profiles.json было две записи: валидный OAuth-профиль anthropic:claude-cli и профиль anthropic:manual с токеном sk-ant-oat01-.... Когда ручной токен истек, OpenClaw не просто отклонил этот профиль — он классифицировал это как ошибку биллинга на уровне провайдера и занес в черный список весь провайдер anthropic, пропуская все модели, включая здоровый OAuth-профиль. Логи показали:
reason: "billing" errorPreview: "Provider anthropic has billing issue (skipping all models)" chain_exhausted
Здоровый OAuth-профиль с валидным токеном обновления никогда не использовался.
Исправление: Полностью удалить anthropic:manual из auth-profiles.json и openclaw.json. Оставить только anthropic:claude-cli.
Причина 2: Изолированные задачи cron попадают в отдельный биллинговый пул
OpenClaw имеет два пути выполнения:
- Основные сеансы — запускают бинарник
/usr/bin/claude, тарифицируются по подписке Max/Pro ✅ - Изолированные/встроенные запуски — прямой HTTP-запрос к Anthropic API, тарифицируются из пула Extra Usage ❌
Задачи cron с sessionTarget: isolated запускают автономный встроенный агент, который обращается к Anthropic API напрямую через HTTP — без заголовков Claude Code, которые отправляет CLI. Anthropic направляет такой запрос в пул Extra Usage, совершенно отдельную квоту. Если Extra Usage выключен, каждый изолированный запуск cron возвращает 400. OpenClaw усугубляет ситуацию: одна ошибка биллинга устанавливает disabledUntil на ~24 часа вперед в файле auth-state.json, блокируя все запросы — включая обычный чат — до истечения таймера. Блокировка переживает перезапуск шлюза.
Полная цепочка отказа
- Перезапуск шлюза → пропущенные задачи cron становятся в очередь на догонку
- Изолированный агент запускается через встроенный раннер → прямой HTTP-запрос к Anthropic API (без заголовков CLI)
- Пул Extra Usage → ошибка 400
- OpenClaw блокирует профиль аутентификации на ~24ч → все запросы заблокированы, включая обычный чат
Исправления
- Немедленная очистка блокировки биллинга:
python3 -c " import json with open('/home/USER/.openclaw/agents/main/agent/auth-state.json') as f: d = json.load(f) if 'usageStats' in d: for profile in d['usageStats']: d['usageStats'][profile].pop('disabledUntil', None) d['usageStats'][profile].pop('failureCounts', None) d['usageStats'][profile].pop('errorCount', None) d['usageStats'][profile].pop('disabledReason', None) d['usageStats'][profile].pop('lastFailureAt', None) with open('/home/USER/.openclaw/agents/main/agent/auth-state.json', 'w') as f: json.dump(d, f, indent=2) print('Cleared.') " openclaw gateway restart - Перенос всех задач cron из
isolatedвmain:python3 -c " import json with open('/home/USER/.openclaw/cron/jobs.json') as f: d = json.load(f) jobs = d if isinstance(d, list) else d.get('jobs', []) for j in jobs: if j.get('sessionTarget') == 'isolated': print(f'Fixing: {j["name"]}') j['sessionTarget'] = 'main' with open('/home/USER/.openclaw/cron/jobs.json', 'w') as f: json.dump(d, f, indent=2) print('Done.') "
Для кого это: Для всех, кто самостоятельно размещает OpenClaw с Claude Max или Pro и видит случайные ошибки биллинга, несмотря на то, что квота не исчерпана.
📖 Read the full source: r/openclaw
👀 Смотрите также

Практические советы по настройке OpenClaw из опыта работы с Docker/Windows
Разработчик делится конкретными уроками по запуску OpenClaw на Docker с Windows 11/WSL2, затрагивая проблемы с сохранением данных, настройкой Discord-бота, подходы к управлению памятью и обходные пути для автоматизации браузера.

Ограничения скорости API Claude: Временные окна, управление контекстом и накладные расходы MCP
Анализ лимитов скорости API Claude выявляет более строгие ограничения в часы пик (5:00-11:00 PT / 8:00-14:00 ET по будням), при этом управление контекстом и использование серверов MCP значительно влияют на потребление токенов. Практические стратегии включают работу вне часов пик, начало новых диалогов для новых задач и аудит интеграций MCP.

Разработчик iOS делится лучшими практиками написания кода для Claude после выпуска нескольких приложений
iOS-разработчик с опытом в кибербезопасности описывает конкретные практики эффективного использования Claude Code, включая разделение сред, настройку наблюдаемости и предотвращение накопления технического долга.

Opus 4.7 испортил 40% запросов; исправлением стало структурирование CLAUDE.md и навыков
После того как Opus 4.7 ухудшил ~40% промптов в 6 настройках, фракционный руководитель по ИИ исправил это, заменив ad-hoc промпты структурированными файлами Skill, иерархическим CLAUDE.md и отдельными файлами памяти — сократив использование токенов на 22% и количество итераций с 3–4 до 1–2.