Autópsia: Erros de Faturamento do Claude Max + OpenClaw devido a OAuth Desatualizado e Tarefas Cron Isoladas

Uma configuração auto-hospedada do OpenClaw com Claude Max começou a retornar billing error — API key has run out of credits apesar de estar bem abaixo da cota. Dois dias de depuração revelaram duas causas raiz e uma cadeia de falhas que faz o erro parecer aleatório.
Causa Raiz 1: Token OAuth Expirado Envenena Todo o Provedor
O arquivo auth-profiles.json tinha duas entradas: um perfil OAuth válido anthropic:claude-cli e um perfil anthropic:manual com um token sk-ant-oat01-.... Quando o token manual expirou, o OpenClaw não apenas falhou nesse perfil — ele o classificou como uma falha de faturamento a nível de provedor e colocou na lista negra todo o provedor anthropic, pulando todos os modelos, incluindo o perfil OAuth saudável. Os logs mostravam:
reason: "billing" errorPreview: "Provider anthropic has billing issue (skipping all models)" chain_exhausted
O perfil OAuth saudável com um token de atualização válido nunca foi tentado.
Correção: Remova anthropic:manual completamente de auth-profiles.json e openclaw.json. Mantenha apenas anthropic:claude-cli.
Causa Raiz 2: Trabalhos Cron Isolados Atingem um Bucket de Faturamento Separado
O OpenClaw tem dois caminhos de execução:
- Sessões principais — executam o binário
/usr/bin/claude, faturado na assinatura Max/Pro ✅ - Execuções isoladas/incorporadas — HTTP direto para a API Anthropic, faturado no bucket Extra Usage ❌
Trabalhos cron com sessionTarget: isolated iniciam um agente incorporado independente que chama a API Anthropic diretamente via HTTP — sem os cabeçalhos Claude Code que a CLI envia. A Anthropic os direciona para o bucket Extra Usage, uma cota completamente separada. Com o Extra Usage desligado, cada execução cron isolada retorna um 400. O OpenClaw então piora: um erro de faturamento define disabledUntil cerca de 24 horas à frente em auth-state.json, bloqueando todas as requisições — inclusive chat normal — até o cooldown ser acionado. O bloqueio sobrevive a reinicializações do gateway.
A Cadeia de Falhas Completa
- Reinicialização do gateway → trabalhos cron perdidos na fila para recuperação
- Agente isolado dispara via executor incorporado → chamada HTTP direta para API Anthropic (sem cabeçalhos CLI)
- Bucket Extra Usage → erro 400
- OpenClaw bloqueia o perfil de autenticação por ~24h → todas as requisições bloqueadas, incluindo chat normal
Correções
- Limpe o bloqueio de faturamento imediatamente:
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('Limpo.') " openclaw gateway restart - Mova todos os trabalhos cron de
isolatedparamain: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'Corrigindo: {j["name"]}') j['sessionTarget'] = 'main' with open('/home/USER/.openclaw/cron/jobs.json', 'w') as f: json.dump(d, f, indent=2) print('Pronto.') "
Para quem é: Qualquer pessoa que hospede o OpenClaw com Claude Max ou Pro e veja erros de faturamento aleatórios apesar de estar abaixo da cota.
📖 Leia a fonte completa: r/openclaw
👀 See Also

Arquitetura de memória de três camadas para contexto persistente do agente OpenClaw
Um desenvolvedor criou um sistema de memória de 3 camadas sobre a infraestrutura do OpenClaw para impedir que os agentes iniciassem cada sessão sem contexto. A arquitetura inclui arquivos de espaço de trabalho L1 injetados a cada turno, busca de memória semântica L2 e documentos de referência L3 abertos sob demanda.

Configurando Servidores MCP no Web UI do llama-server: Um Guia Prático
Um usuário do Reddit compartilha etapas específicas para configurar servidores MCP na interface web do llama-server, incluindo instalação do uv, criação de um arquivo config.json com definições de servidores, execução do mcp-proxy e modificação de URLs para integração adequada.

Tratar os Subagentes do OpenClaw como Funções Sem Estado em vez de Membros Persistentes da Equipe
Um desenvolvedor compartilha sua experiência ao mudar de tratar subagentes do OpenClaw como membros persistentes da equipe com personalidades para vê-los como chamadas de função stateless com propósitos especializados.

Atualização do OpenClaw Corrigida: Resolvendo Erros de 'Falha na Lista de Permissões' do Executável do Telegram
Uma atualização recente do OpenClaw fez com que os comandos exec do Telegram falhassem com erros 'exec denied: allowlist miss', mesmo após desativar as aprovações. A correção requer habilitar o acesso elevado, configurar explicitamente a segurança do exec e atualizar os arquivos openclaw.json e exec-approvals.json.