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

Optimisation des Coûts d'OpenClaw : Cinq Réglages pour une Utilisation Continue des Agents
Un développeur exécutant OpenClaw en continu sur un Raspberry Pi a identifié cinq paramètres de configuration qui ont considérablement réduit les coûts de l'agent en optimisant pour le coût plutôt que pour les capacités par défaut.

Gestion de la mémoire OpenClaw : Guide complet
Aucun

Utilisateur de Reddit partage une configuration pratique de Claude pour une assistance IA cohérente en programmation
Un développeur décrit le passage de prompts uniques à des fichiers de contexte séparés (about-me.md, my-voice.md, my-rules.md) et la mise en œuvre d'un flux de travail structuré où Claude lit le contexte, pose des questions, crée des plans, puis exécute des tâches.

Erreur du service de machine virtuelle Windows Cowork : Problème de chemin et correctif
Un problème d'installation de Windows Cowork provoque l'erreur 'service VM non en cours d'exécution' toutes les 10 à 20 minutes en raison d'un chemin incorrect du dossier vm_bundles dans les installations MSIX. La solution consiste à localiser le dossier correct et à utiliser un script de réparation.