Post-Mortem : Erreurs de facturation de Claude Max + OpenClaw dues à un OAuth obsolète et à des tâches Cron isolées

Une installation auto-hébergée d'OpenClaw avec Claude Max a commencé à renvoyer billing error — API key has run out of credits malgré un quota largement non atteint. Deux jours de débogage ont révélé deux causes racines et une chaîne de défaillance qui rend l'erreur apparemment aléatoire.
Cause racine 1 : Un jeton OAuth obsolète empoisonne tout le fournisseur
Le fichier auth-profiles.json contenait deux entrées : un profil OAuth valide anthropic:claude-cli et un profil anthropic:manual avec un jeton sk-ant-oat01-.... Lorsque le jeton manuel a expiré, OpenClaw n'a pas simplement échoué pour ce profil — il l'a classé comme échec de facturation au niveau du fournisseur et a blacklisté l'intégralité du fournisseur anthropic, ignorant tous les modèles, y compris le profil OAuth sain. Les logs montraient :
reason: "billing" errorPreview: "Provider anthropic has billing issue (skipping all models)" chain_exhausted
Le profil OAuth sain avec un jeton de rafraîchissement valide n'a jamais été essayé.
Correctif : Supprimer complètement anthropic:manual de auth-profiles.json et openclaw.json. Ne conserver que anthropic:claude-cli.
Cause racine 2 : Les tâches cron isolées frappent un bucket de facturation séparé
OpenClaw a deux chemins d'exécution :
- Sessions principales — exécutent le binaire
/usr/bin/claude, facturé à l'abonnement Max/Pro ✅ - Exécutions isolées/intégrées — HTTP direct vers l'API Anthropic, facturé au bucket Extra Usage ❌
Les tâches cron avec sessionTarget: isolated lancent un agent intégré autonome qui appelle directement l'API Anthropic via HTTP — sans les en-têtes Claude Code que le CLI envoie. Anthropic le dirige vers le bucket Extra Usage, un quota complètement séparé. Avec Extra Usage désactivé, chaque exécution cron isolée renvoie une 400. OpenClaw aggrave la situation : une erreur de facturation définit disabledUntil environ 24 heures plus tard dans auth-state.json, bloquant toutes les requêtes — y compris le chat normal — jusqu'à la fin du délai. Le verrouillage survit aux redémarrages de la passerelle.
La chaîne de défaillance complète
- Redémarrage de la passerelle → tâche cron manquée mise en file d'attente pour rattrapage
- Agent isolé exécuté via l'exécuteur intégré → appel HTTP direct à l'API Anthropic (pas d'en-têtes CLI)
- Bucket Extra Usage → erreur 400
- OpenClaw verrouille le profil d'authentification pendant ~24h → toutes les requêtes bloquées, y compris le chat normal
Correctifs
- Effacer immédiatement le verrouillage de facturation :
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('Effacé.') " openclaw gateway restart - Déplacer toutes les tâches cron de
isolatedversmain: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'Correction : {j[\"name\"]}') j['sessionTarget'] = 'main' with open('/home/USER/.openclaw/cron/jobs.json', 'w') as f: json.dump(d, f, indent=2) print('Terminé.') "
Pour qui : Toute personne auto-hébergeant OpenClaw avec Claude Max ou Pro qui voit des erreurs de facturation aléatoires malgré un quota non atteint.
📖 Lire la source complète : r/openclaw
👀 See Also

Comment fonctionne réellement la mémoire d'OpenCLAW : Résoudre l'« oubli » de l'agent
Les agents OpenCLAW n'ont pas de mémoire persistante entre les conversations - ils reconstruisent le contexte à partir de fichiers comme SOUL.md, USER.md et MEMORY.md à chaque session. Les problèmes courants d'«oubli» proviennent de l'encombrement des sessions, des fichiers mémoire non structurés et de la confusion entre l'historique des discussions et le stockage permanent.

La Porte d'Entrée et les Compétences d'OpenClaw : Dépasser le Chat pour une Exécution Automatisée
La passerelle d'OpenClaw connecte des canaux comme Telegram et WhatsApp à des compétences qui exécutent des actions réelles telles que l'exécution de tests, l'appel d'API et la gestion de fichiers, avec des tâches cron permettant une automatisation planifiée en arrière-plan.

Recommandations de configuration de LLM local pour OpenClaw
Un utilisateur partage sa configuration pour exécuter un LLM local avec OpenClaw, utilisant un GB10 pour le traitement IA et un Mac mini pour l'installation d'OpenClaw, avec des détails spécifiques sur le modèle et le serveur.

Maîtriser OpenClaw 101 : Un Guide Débutant Inspiré des Avis de Redditeurs
Plongez dans OpenClaw avec notre guide complet, inspiré des idées de la communauté Reddit. Évitez les pièges courants et maximisez votre productivité avec ces conseils d'experts.