Refus liste blanche OpenClaw et correction prod (MacLogin cloud Mac 2026-04-23) : stopper les régressions silencieuses Model not allowed sur les passerelles HK, JP, KR, SG et US
Lorsque les journaux OpenClaw passent de traces utiles à un simple Model not allowed, beaucoup d’équipes incriminent le fournisseur. Sur passerelles Apple Silicon louées, la cause dominante en avril 2026 est souvent une dérive de liste blanche : agents.defaults.models ne croise plus les identifiants catalogue après une mise à jour mineure. Ce guide couvre la matrice politique vs catalogue, les clés JSON5 à aligner, un déploiement en sept étapes avec retour arrière explicite, des sondes curl anti faux positifs et une FAQ MacLogin multi-régions.
Reposez-vous sur les diagnostics doctor, la comparaison script d’installation vs npm global et la discipline de bascule prod avec contrôles de santé. Les quotas restent critiques : combinez avec back-off fournisseur. Hub : index thématique OpenClaw. Pages opérationnelles : aide, tarifs, VNC.
Chez MacLogin, validez d’abord sur le staging Tokyo, promouvez vers l’hôte d’automatisation général Hong Kong, puis agents lecture SG et Séoul, enfin la production US. Sans journaux de refus et p95 par étape, vous verrez « staging OK, prod silencieusement refusée ». Exigez sur le ticket un diff JSON doctor et le git describe de la passerelle.
Pour les clients réglementés, archivez au moins un cycle cron complet de curl et corps de santé masqués pour prouver que le shell interactif et le cron utilisent le même ID. Si l’injection launchd diverge du disque, documentez la correction durable (par ex. retirer OPENCLAW_MODEL du plist) au lieu de masquer par un simple redémarrage.
Pourquoi Model not allowed survient après des semaines « sans changement de config »
OpenClaw en amont peut renommer des alias de routage, durcir les listes de refus par défaut ou séparer prévisualisation et SKU stables. Votre JSON5 conserve des ID hérités courts tandis que le runtime attend des chaînes qualifiées fournisseur. Les compétences cron figées en YAML contournent l’onboarding interactif et masquent l’écart.
- Injection d’environnement : un plist launchd exportant
OPENCLAW_MODELpeut écraser le JSON5 pour un seul processus ;doctorreste vert jusqu’au démarrage du cron. - Fusions partielles : une promotion Git peut intégrer uniquement
toolssansagents.defaults, rendant la prod plus stricte que le staging. - Catalogues régionaux : des listes US et JP décalées de quelques minutes suffisent pour que JP refuse avec la même chaîne mais des drapeaux de disponibilité différents.
Matrice dérive politique vs catalogue
| Signal | Côté politique | Côté catalogue | Vérifier |
|---|---|---|---|
| 401 fournisseur | Peu probable | Rotation de clé | curl fournisseur /models |
| 200 immédiat mais complétion vide | ID inconnu mappé | Modèle retiré | grep des ID refusés dans les logs passerelle |
| Refus intermittent seulement en cron | Environnement cron sans nouvel ID | Idem | printenv dans le job launchd |
| Refus après upgrade npm | Schéma par défaut renforcé | Dépendance pair modifiant le routeur | openclaw doctor --json diff |
Forme JSON5 et clés oubliées
Gardez agents.defaults.models comme tableau explicite de chaînes : pas de virgules traînantes, pas de lignes commentées qui réapparaissent au cherry-pick. Copiez les ID fournisseur à l’identique ; avec alias -latest et hachages épinglés, préférez les hachages épinglés en production et un alias de trempage en staging.
Commentez chaque entrée (équipe propriétaire, date de revue trimestrielle) : les jokers non expliqués échouent aux audits. Après édition, openclaw doctor --fix normalise les clés invalides, puis relancez sans --fix pour confirmer la stabilité.
Déploiement en sept étapes (canari JP → prod US)
- Instantané de
~/.openclawselon le guide de sauvegarde d’état. - Appliquer le diff de liste blanche sur un bail staging JP ; charge synthétique < 5 RPS.
- Doctor deux fois ; échec si le nombre d’avertissements augmente de plus de 1.
- Promouvoir vers l’hôte HK ; surveiller les refus 24 h.
- Promouvoir SG et KR (agents lecture) ; surveiller le p95.
- Promouvoir US uniquement après visa finance si les modèles touchent l’analyse de trading.
- Retour arrière (tarball + relance launchd) si un refus horaire dépasse 15 dans une région.
Sondes curl après redémarrage (éviter les faux verts)
Appelez l’endpoint de santé local 5 fois avec 200 ms entre appels ; le second chargement peut activer des plugins qui réappliquent la liste blanche. Conservez les en-têtes de build. Si TLS termine sur un proxy inverse, testez aussi 127.0.0.1:18789 pour isoler politique réseau vs politique OpenClaw.
| Sonde | Critère de réussite | Échec signifie |
|---|---|---|
| GET /health (local) | HTTP 200, corps OK | Passerelle non liée après redémarrage |
| Complétion test | Texte assistant non vide | Chemin de refus silencieux |
| Dry-run cron | Même ID que manuel | Dérive d’environnement |
Si les proxies retirent X-OpenClaw-Build, archivez git describe dans le canal d’incident pour corréler la version de schéma. Ignorer cette étape ajoute en moyenne 47 minutes de doctor comparatif JSON5 issus de miroirs npm décalés.
FAQ
Activer allow-all temporairement ? Uniquement sur clones jetables ; jamais sur baux MacLogin partagés où d’autres compétences héritent du même $HOME.
Casse des caractères ? Oui — traitez les ID comme des chaînes opaques sensibles à la casse.
Propriétaire de la revue catalogue ? Ingénierie plateforme + gouvernance IA ; documentez la liste dans les runbooks liés depuis aide.
Pourquoi le Mac mini M4 accélère les cycles de validation
Les puces M4 maintiennent doctor et les redémarrages passerelle npm sous 90 s, utiles pour enchaîner cinq métros avant l’ouverture. La mémoire unifiée garde les caches tokenizer chauds pendant les sondes curl. L’empreinte HK/JP/KR/SG/US permet de prioriser JP sans réveiller systématiquement les ingénieurs US.
Ajouter des canaris via tarifs coûte moins cher qu’un refus prod : gardez une réplique de liste plus stricte en ligne 24/7 et ne promouvez le JSON5 qu’après un cycle cron complet.
Exécutez les changements de liste blanche OpenClaw sur Apple Silicon dédié
Associez le JSON5 validé par doctor aux nœuds MacLogin HK, JP, KR, SG et US.