Si `HERMES.md` apparaît dans un message de commit, le trafic est routé vers une facturation d’usage supplémentaire
(github.com/anthropics)- Récemment, si la chaîne
HERMES.mdapparaît dans un message de commit git, les requêtes Claude Code sont envoyées vers une facturation d’usage supplémentaire au lieu du quota du plan Max - Ce déclencheur est indépendant de la présence réelle d’un fichier sur le disque et provient du contenu même du message de commit ;
add HERMES.mdéchoue, tandis queadd hermes.mdest traité normalement - Lors des tests de reproduction, l’erreur
API Error: 400 "You're out of extra usage..."a été observée avecclaude-opus-4-6[1m]etclaude-opus-4-7;HERMES,HERMES.txt,README.mdet autres ne provoquent pas le même comportement - Dans les environnements affectés, malgré une capacité hebdomadaire du plan encore disponible, 200,98 $ de crédits d’usage supplémentaire ont été consommés ; une fois ces crédits épuisés, plusieurs projets sont devenus inutilisables
- La cause a été identifiée comme un système anti-abus trop agressif ; le problème a déjà été corrigé, puis l’incident a été clôturé en tant que completed, avec annonce d’un remboursement et de crédits d’usage supplémentaires
Aperçu du problème
- Récemment, si la chaîne
HERMES.mdapparaît dans l’historique récent des commits git, les requêtes Claude Code sont routées vers une facturation d’usage supplémentaire au lieu du quota du plan Max - Cela n’a aucun rapport avec la présence d’un fichier
HERMES.mdsur le disque ; c’est bien le contenu du message de commit git qui sert de déclencheur - Comme Claude Code inclut les commits récents dans le system prompt, l’analyse a conclu que cette chaîne modifiait le routage côté serveur
- Alors que l’utilisation hebdomadaire incluse du plan Max 20x n’était consommée qu’à hauteur de 13 %, 200,98 $ de crédits d’usage supplémentaire ont été épuisés ; après épuisement, plusieurs projets sont devenus totalement inutilisables
- Au même moment, le tableau de bord du plan indiquait encore plus de 86 % de capacité hebdomadaire restante, montrant un décalage entre la voie de facturation réelle et l’état affiché
Conditions de reproduction et résultats
- L’environnement de reproduction est Claude Code v2.1.119, macOS Apple Silicon, Max 20x plan à 200 $/mois, modèle
claude-opus-4-6[1m], et le problème est aussi reproductible avecclaude-opus-4-7 - Dans la procédure minimale, après
git commit -m "add HERMES.md", l’exécution declaude -p "say hello" --model "claude-opus-4-6[1m]"renvoieAPI Error: 400 "You're out of extra usage..." - Avec la même procédure mais en remplaçant le message de commit par
add hermes.md, la requête passe par le quota du plan et renvoie"Hello!" - Le script de reproduction crée les répertoires
/tmp/test-failet/tmp/test-pass, puis enchaînegit init, ajout de fichier, commit, exécution declaude -p, et nettoyage final avecrm -rf - Les résultats d’identification du déclencheur montrent un échec avec
"HERMES.md"et"test HERMES.md test", tandis que"hermes.md","HERMES","HERMES.txt","AGENTS.md","README.md"fonctionnent normalement - Même si un fichier
HERMES.mdexiste sur le disque, tout fonctionne normalement si le message de commit est propre ; dans le même dépôt, si l’on utilise une orphan branch sans historique, cela fonctionne aussi normalement
Recherche de cause et comportement attendu
- L’analyse de cause a suivi une séquence composée d’un clonage du dépôt affecté, d’un test sur orphan branch, puis d’une recherche binaire systématique isolant chaque chaîne de message de commit, jusqu’à identifier précisément
HERMES.mdcomme déclencheur - La facturation d’une requête API ne devrait pas dépendre du contenu du message de commit git dans le system prompt, et les requêtes des abonnés au plan Max devraient d’abord être routées via le quota inclus du plan
- Le message d’erreur
out of extra usagene donne aucun indice sur un routage basé sur le contenu, ce qui rend le diagnostic très difficile - Les utilisateurs ayant
HERMES.mddans un commit récent étaient donc dans une situation où leur usage pouvait être silencieusement facturé en crédits supplémentaires
Traitement de l’incident et état final
- Un collaborateur a répondu que le problème provenait d’un système anti-abus trop agressif et qu’il était déjà corrigé
- L’incident a ensuite été clôturé avec l’état completed
- Le bot GitHub Actions a signalé 3 issues potentiellement dupliquées
- [BUG] Literal "HERMES.md" in git commit messages triggers 400 "out of extra usage" on Max OAuth (content filter false-positive misclassified as quota error)#53171
- [BUG] CLI completely blocked by "out of extra usage" error despite Max 20x plan at only 10% usage#45020
- Billing bug: Extra usage pool consumed while session limit still has remaining capacity#29704
- Le bot a averti que l’issue pourrait être automatiquement fermée comme duplicate dans un délai de 3 jours, et a indiqué de laisser un commentaire ou un 👎 si ce n’était pas un doublon
Remboursement et réponse du support
- Le texte inclut une réponse du support indiquant qu’en cas de mauvais billing routing causé par une erreur technique, aucune compensation ni aucun remboursement ne pouvait être accordé
- Ensuite, d’après https://news.ycombinator.com/item?id=47952722, il est précisé que les utilisateurs affectés recevront un remboursement intégral ainsi que des crédits d’usage supplémentaires d’un montant équivalent à l’abonnement mensuel
- Thariq de l’équipe Claude Code a laissé le lien https://x.com/trq212/status/2048495545375990245
- Il a également indiqué que l’envoi d’e-mails à tous les utilisateurs affectés était toujours en cours
- Le dispositif de support n’était pas préparé à faire remonter ce type de bug complexe vers l’ingénierie, et des améliorations sont en cours, mais demanderont encore du temps
- Comme un message initial indiquant l’impossibilité d’un remboursement coexiste avec l’annonce ultérieure d’un remboursement, on se retrouve avec des messages contradictoires dans le même fil
Réactions des utilisateurs et critiques de conception
- À un moment où la question du remboursement restait floue, certains sont allés jusqu’à résilier leur abonnement ; l’absence de réponse claire sur le remboursement et le clap gif attaché au message ont même été cités comme motif d’annulation
- On voit aussi une tendance à dire que l’évaluation future dépendra du fait que la réponse du support débouche ou non sur un vrai remboursement
- À cause des images et mèmes, certains n’ont compris que plus tard que le commentaire du posteur initial n’était pas son propre propos, mais une citation du bot de support
- En s’appuyant sur le signalement de @bcherny, certains ont aussi interprété le comportement du système anti-abus trop agressif comme un mécanisme qui, au lieu de bloquer certaines requêtes, les bascule vers une facturation d’usage supplémentaire
- Des critiques ont suivi : si c’est considéré comme un abus, il faudrait bloquer la requête, pas la traiter avec surfacturation ; s’il existe un mode où l’on contourne le quota tout en continuant à servir la requête moyennant un surcoût, alors c’est la conception elle-même qui pose problème
- Il y a aussi eu des protestations contre l’idée que le fait, pour un utilisateur, de vouloir contrôler directement un client s’exécutant en local puisse être traité comme une forme de violation, ainsi que des critiques affirmant qu’il devrait être possible de déléguer des autorisations à un software agent agissant pour l’utilisateur
- Certains ont aussi souligné qu’il y avait un décalage apparent entre la promesse de vendre un agent personnel et le message implicite selon lequel seule la combinaison person+agent serait réellement bienvenue
Mention de modèles alternatifs
- Des open weight models chinois ont été cités comme alternative, car ils peuvent être hébergés sur du matériel local et exécutés en autonomie dès lors que l’on dispose du matériel adéquat
- Il est aussi avancé que ces modèles coûtent 10 à 50 fois moins cher qu’Anthropic, pour des performances en code inférieures d’environ 2,7 %
1 commentaires
Réactions sur Hacker News
C’est vraiment sidérant qu’ils aient facturé à tort à cause de leur propre erreur technique et qu’ils ne puissent même pas rembourser
Au minimum, Anthropic aurait dû accorder immédiatement un crédit intégral
On dirait un avant-goût du futur du support client
Quelque chose comme : « Oui, vraiment désolés, mais laissez simplement passer. Si vous voulez, vous pouvez encore discuter quelques heures avec le chatbot IA. Ça n’aidera pas, mais de notre côté ça nous coûtera environ 0,12 $ de plus en tokens »
On dirait aussi que la première fois qu’Anthropic prendra connaissance de cette affaire par des humains, ce sera via HN
J’ai l’impression que la réponse a été entièrement rédigée par un LLM à qui on a explicitement demandé de ne jamais proposer de remboursement ou de compensation
S’ils ne se font pas recadrer via les tribunaux, des chargebacks ou autre, pourquoi changeraient-ils de cap d’eux-mêmes ?
Il y avait même un DiCaprio clap, donc apprendre que ce n’était pas une blague rend ça encore plus absurde
Je suis Thariq de l’équipe Claude Code
Nous travaillons sur le problème en continu depuis que le bug a été identifié, et nous accordons à toutes les personnes concernées un remboursement intégral ainsi qu’un crédit d’usage supplémentaire équivalent au montant de l’abonnement mensuel, en guise d’excuses
Le message original est ici : https://x.com/trq212/status/2048495545375990245
Nous sommes aussi encore en train d’envoyer des e-mails à toutes les personnes touchées
Le flux de support n’était pas conçu pour faire remonter à l’ingénierie ce type de bug complexe, et nous voulons améliorer ce point, mais cela prendra un peu de temps
Désolé pour les personnes qui ont subi ça
Le rechargement automatique était désactivé, mais j’ai quand même reçu en mars une facture de 45,08 $, et il était totalement impossible d’atteindre le support
D’après le message lié, je ne suis pas le seul à qui c’est arrivé
il a été dit qu’aucune compensation n’était possible pour un routage de facturation erroné lié à une erreur technique ou à une dégradation du service
Je me demande bien ce qui est censé empêcher le versement d’une compensation
Pour ceux qui n’utilisent pas X, ce serait bien d’indiquer aussi sur quels canaux suivre ce genre d’annonce
La réponse du support, recopiée par l’auteur du signalement dans le fil GitHub, ressemble presque à une hallucination et, sortie de son contexte, elle prête fortement à confusion
Un bot qui vous dit simplement de reparler à un bot si vous avez besoin d’aide, ce n’est pas du support
Ça en a juste l’apparence, sans offrir de vrai moyen d’obtenir de l’aide
Je me souviens de très peu d’entreprises qui affirment aussi ouvertement qu’elles ne peuvent pas indemniser une facturation erronée causée par une erreur technique
Si c’est vraiment leur politique, c’est complètement aberrant
Le fait qu’ils aient montré exactement le mode d’échec emblématique de leur propre produit dans leurs processus métier rend l’image encore pire
On peut le voir à son nom d’utilisateur
https://x.com/trq212/status/2048495545375990245
À ce que je vois maintenant, ils reçoivent aussi un crédit de 200 $ en plus du remboursement
On ne devrait pas avoir à faire tout un scandale pour pousser une entreprise à corriger sa propre erreur
Dire qu’ils ne pouvaient pas rendre 200 $ qu’ils avaient pris, c’était franchir la ligne
Cela dit, l’origine exacte de cette première réponse postée par l’OP dans l’issue GitHub reste encore un peu floue
J’ai peut-être lu l’issue trop vite, donc je ne sais pas si le contexte a été précisé ensuite
J’ai récemment subi une double facturation de 100 $ sur un rechargement automatique
J’ai essayé de contacter Anthropic, mais comme prévu la seule option était un agent de chat, et à la fin de la conversation on m’a dit que quelqu’un me contacterait pour m’aider, sauf que rien ne s’est jamais passé
J’ai finalement contesté l’opération auprès de ma banque, et la décision a été rendue en ma faveur
En décembre, l’app iOS avait un bug : on pouvait souscrire via l’App Store, mais rien n’était enregistré côté backend, donc l’argent partait sans que les droits du forfait soient activés
L’incident de statut était ici : https://status.claude.com/incidents/6rrnsb1y0kbn
J’ai voulu passer de l’offre gratuite à l’offre standard, le paiement est bien passé mais je suis resté en gratuit ; pensant à un bug temporaire, j’ai même essayé l’offre Max, avec exactement le même résultat
J’ai tenté d’annuler et de recommencer, mais mon compte est resté définitivement lié au statut utilisateur Apple, ce qui m’obligeait à gérer l’abonnement uniquement depuis l’app iOS, et chaque nouvelle tentative pour reprendre l’offre standard reproduisait le même problème
Le bot de support reconnaissait bien qu’il s’agissait d’un bug et qu’un remboursement ainsi qu’une correction étaient nécessaires, mais mon compte n’a jamais été débloqué et je n’ai jamais été remboursé
J’ai demandé un remboursement à Apple et il a été traité assez rapidement, et le bot n’a jamais fait l’escalade vers un humain comme promis
On m’a dit que le bug avait été corrigé, mais mon compte e-mail personnel est toujours dans un limbo permanent et je ne peux toujours pas passer du gratuit à une autre formule
Même récemment, si je réessaie, l’argent est débité et je reste bloqué sur le gratuit ; j’ai fini par devoir créer un nouveau Gmail juste pour payer Anthropic/Claude
Pourtant, le suivi postal indiquait clairement Address unknown, returning to sender
J’aurais dû lancer un chargeback directement depuis mon compte bancaire, car là au moins un humain finit par examiner le dossier
J’en ai clairement retenu la leçon
J’ai ouvert un ticket via le chatbot et j’envoie des e-mails tous les jours, mais je n’ai toujours aucune réponse
Malheureusement, je n’ai même pas l’option du chargeback
Ce qui se passe chez Anthropic ces temps-ci ressemble presque à une série de catastrophes
Je ne sais même pas ce qui s’est passé avec Opus 4.7, mais ils sont finalement revenus à la 4.6, et la 4.6 elle-même donnait déjà l’impression d’une baisse de performance
C’est mon ressenti, et les fils GitHub sur les changements de harness donnent aussi cette impression
Je n’ai plus de raison de payer un abonnement en acceptant cette dégradation, donc je pense annuler
Il existe maintenant au moins trois autres modèles aussi bons qu’Opus, et selon moi le pi project est le meilleur côté harness
En tant qu’utilisateur d’Anthropic qui n’a presque pas ressenti les problèmes récents, je suis presque reconnaissant envers ceux qui partent à cause de ces plaintes, parce qu’ils laissent plus de ressources de calcul aux utilisateurs restants
Cela dit, ils fabriquent quand même de bons produits
J’étais confus sur le fait que sasha-id soit un employé d’Anthropic, un bot officiel ou simplement une blague
La structure de la réponse était étrange et il y avait même un GIF, donc seule la réponse de Cherny paraissait authentique
C’était une vraie question, et désolé d’avance si la réponse est évidente
D’après moi, la confusion vient du fait que l’auteur du signalement a simplement recopié la réponse e-mail originale qu’il avait reçue, sans préciser qu’elle venait d’un e-mail
Et ce qu’il voulait dire par là est ambigu aussi : est-ce que c’était « pas de remboursement », ou bien « moi, je ne peux pas traiter le remboursement » ?
Je ne sais pas non plus si une GitHub Issue est l’endroit approprié pour demander un remboursement
On n’a probablement ici qu’une partie de l’histoire, et j’espère simplement qu’un humain lit réellement le dossier de l’autre côté et le traite correctement
Elle semble avoir collé un e-mail venu d’Anthropic sans le remettre dans son contexte, et le GIF semble être sa propre réaction
Si les commentaires ici prêtent à confusion, c’est parce qu’il a simplement copié-collé la réponse du support d’Anthropic
Le lien est ici : https://github.com/anthropics/claude-code/issues/53262#issue...
Il est presque impossible de distinguer ce qui est un vrai problème de ce qui est une hallucination, et le fait même qu’Anthropic essaie de lire ça a quelque chose d’étonnant
Dans ce cas précis, l’auteur semble quand même citer ce que le support lui avait dit
Dans la PR, l’utilisateur github actions a marqué cette issue comme possiblement en doublon de https://github.com/anthropics/claude-code/issues/53171, créée plus tôt, et cette issue ne semble guère avoir été modifiée après coup
Du coup, on peut se demander si sasha-id a copié ce bug report pour se présenter comme la personne qui l’a découvert
On dirait qu’Anthropic a souvent tendance à adopter d’abord une ligne dure, puis à faire marche arrière ensuite
C’est peut-être lié à une mauvaise communication interne ; cette personne finira peut-être quand même par être remboursée, mais l’impression donnée reste vraiment mauvaise
Une telle manière de répondre est difficilement acceptable
Cela peut aussi relever d’un fonctionnement du type ask forgiveness not permission, que j’ai déjà vu dans plusieurs organisations
L’idée est de forcer le passage, et si ça passe tant mieux, sinon on annule en cas de tollé
Un jour, un dirigeant a proposé de supprimer tous les comptes d’utilisateurs inactifs depuis six mois ; quand on l’a averti que les gens se mettraient en colère et en parleraient sur Twitter ou Reddit, il a répondu avec assurance qu’on expliquerait simplement que ce n’était pas soutenable et qu’ils pourraient recréer un compte
On l’a donc implémenté, et une seconde après l’activation les tickets de support furieux et les posts sur les réseaux sociaux ont afflué, puis ce dirigeant s’est immédiatement défaussé en disant que « ce n’était pas l’implémentation qu’il attendait »
Je ne comprends toujours pas quel résultat il imaginait
Bien sûr, certains chez Anthropic adhèrent sans doute aussi à plusieurs de ces méthodes, mais j’ai plutôt l’impression que si l’entreprise évite de tracer des lignes claires, c’est pour garder une marge de manœuvre selon les circonstances
En janvier, j’ai été facturé trois fois en double, et Anthropic a reconnu les faits tout en refusant le remboursement
J’ai finalement gagné en contestant les opérations auprès de ma banque
Et si oui, s’il a fallu créer un nouveau compte, et si ce nouveau compte a aussi été bloqué
J’ai décidé assez tôt de ne pas utiliser Claude
Quand ils ont empêché la création d’un deuxième compte avec le même numéro de téléphone, même pour un usage professionnel, j’ai tout de suite compris
Ils ont ensuite levé cette restriction, mais cet épisode suffisait déjà à montrer qu’Anthropic ne comprenait pas vraiment ses clients
Les modèles sont bons, mais le processus d’inscription est bien plus complexe et fastidieux que chez les concurrents, et l’ensemble est franchement assez mal fichu