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

✍️ OpenClawRadar📅 Опубликовано: 12 мая 2026 г.🔗 Source
Постмортем: Ошибки биллинга Claude Max + OpenClaw из-за устаревшего OAuth и изолированных задач cron
Ad

Самостоятельно размещенный 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, блокируя все запросы — включая обычный чат — до истечения таймера. Блокировка переживает перезапуск шлюза.

Ad

Полная цепочка отказа

  1. Перезапуск шлюза → пропущенные задачи cron становятся в очередь на догонку
  2. Изолированный агент запускается через встроенный раннер → прямой HTTP-запрос к Anthropic API (без заголовков CLI)
  3. Пул Extra Usage → ошибка 400
  4. OpenClaw блокирует профиль аутентификации на ~24ч → все запросы заблокированы, включая обычный чат

Исправления

  1. Немедленная очистка блокировки биллинга:
    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
  2. Перенос всех задач 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

Ad

👀 Смотрите также

100 советов по созданию личного ИИ-агента: от облачного прототипа до продакшена
Гайды

100 советов по созданию личного ИИ-агента: от облачного прототипа до продакшена

Шесть недель создания постоянного ИИ-агента — не просто оболочки чат-бота, — который управляет задачами, отслеживает сделки, читает электронную почту и анализирует данные. Ключевые уроки: пишите Конституцию, а не системный промпт, используйте плоские markdown-файлы для памяти и версионируйте файл идентичности в git.

OpenClawRadar
Системная архитектура для Vibe Coders: руководство старшего инженера
Гайды

Системная архитектура для Vibe Coders: руководство старшего инженера

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

OpenClawRadar
Использование Claude для анализа стилей письма с целью улучшения пользовательских инструкций
Гайды

Использование Claude для анализа стилей письма с целью улучшения пользовательских инструкций

Пользователь Reddit описывает метод создания более эффективных пользовательских инструкций, предлагая Клоду проанализировать 10 образцов письма для выявления конкретных паттернов, таких как избегание определённых знаков препинания и источники аналогий, вместо того чтобы полагаться на субъективные описания тона.

OpenClawRadar
Бесплатный OpenClaw Gateway с локальной LLM на Oracle Cloud
Гайды

Бесплатный OpenClaw Gateway с локальной LLM на Oracle Cloud

Разработчик делится опытом запуска OpenClaw Gateway с локальной языковой моделью Qwen3.5 27B A3B 4-bit на бесплатном тарифе Oracle Cloud, используя экземпляр VM.Standard.A2.Flex с 4 OCPU, 24 ГБ ОЗУ и 200 ГБ SSD, управляемый удалённо через приложение QCAI.

OpenClawRadar