OpenClaw Modell-Allowlist-Ablehnung und Produktionsfix (MacLogin Cloud Mac 2026-04-23): stille Model-not-allowed-Rückschritte auf HK-, JP-, KR-, SG- und US-Gateways stoppen
Wenn OpenClaw-Logs von aussagekräftigen Stacks auf die kurze Meldung Model not allowed schrumpfen, liegt die Schuld oft beim Provider. Auf gemieteten Apple-Silicon-Gateways ist im April 2026 häufiger Allowlist-Drift: agents.defaults.models schneidet nach Minor-Upgrades die vom Router oder Cron angefragten Katalog-IDs nicht mehr. Dieser Leitfaden bündelt Policy-vs.-Katalog-Matrix, JSON5-Schlüssel, ein siebenstufiges Rollout mit klarem Rollback, curl-Proben gegen Schein-Grün und MacLogin-FAQs.
Basis bleiben Doctor-Diagnostik, der Vergleich Installationsskript vs. npm global und die Disziplin aus Produktions-Cutover mit Health-Checks. Rate-Limits ergänzen Sie mit Provider-Backoff. Hub: OpenClaw-Themenindex. Betrieb: Hilfe, Preise, VNC.
Bei MacLogin validieren Sie Allowlist-Änderungen zuerst auf Tokio-Staging, heben dann auf den HK-Allzweck-Host, danach SG- und Seoul-Lese-Agenten und zuletzt US-Prod an. Ohne Ablehnungszähler und p95 pro Schritt bleibt „Staging grün, Prod still abgelehnt“. Tickets brauchen Doctor-JSON-Diff und Gateway-git describe.
Regulierte Kunden archivieren maskierte curl- und Health-Texte mindestens einen vollen Cron-Zyklus, um identische Modell-IDs für Shell und Cron zu belegen. Weichen launchd-Umgebung und Platte ab, dokumentieren Sie dauerhafte Fixes (z. B. OPENCLAW_MODEL aus dem plist entfernen) statt nur neu zu starten.
Warum Model not allowed nach Wochen ohne Konfigurationsänderung auftaucht
Upstream kann Routing-Aliasse umbenennen, Standard-Denylists verschärfen oder Preview- und Stable-SKUs trennen. Ihr JSON5 behält kurze Legacy-IDs, die Laufzeit erwartet aber vendor-qualifizierte Strings. Cron-Skills mit YAML-fixierten Modellen umgehen lautes Onboarding.
- Umgebungsinjektion: Ein launchd-plist, das
OPENCLAW_MODELexportiert, überschreibt JSON5 nur für einen Kindprozess;doctorbleibt grün bis der Cron startet. - Teil-Merges: Git-Promotion übernimmt nur
toolsohneagents.defaults— Prod wird strenger als Staging. - Regionale Kataloge: US- und JP-Listen, die Minuten auseinanderliegen, erzeugen identische Strings mit unterschiedlichen Verfügbarkeitsflags — JP lehnt ab.
Matrix Policy vs. Katalog-Drift
| Signal | Policy | Katalog | Prüfen |
|---|---|---|---|
| Provider 401 | unwahrscheinlich | Schlüsselrotation | curl Provider /models |
| Sofort 200, leere Completion | Mapping auf unbekannte ID | Modell eingestellt | Gateway-Log nach abgelehnter ID |
| Nur Cron intermittierend | Cron-Umgebung ohne neue ID | gleich | printenv im launchd-Job |
| Nur nach npm-Upgrade | Defaults verschärft | Peer ändert Router | openclaw doctor --json diff |
JSON5-Form und vergessene Schlüssel
agents.defaults.models bleibt ein explizites String-Array: keine Parser-brechenden Trailing Commas, keine auskommentierten Zeilen, die beim Cherry-Pick zurückkehren. Provider-IDs wörtlich; bei -latest und Hash bevorzugen Sie in Prod Hashes, in Staging genau einen Alias zum Soaken.
Kommentieren Sie Team und Review-Datum — Wildcards ohne Erklärung fallen durch Audits. Nach Edits openclaw doctor --fix, dann erneut ohne --fix.
Siebenstufiges Rollout (JP-Kanarienvogel → US-Prod)
- Snapshot von
~/.openclawlaut State-Backup-Leitfaden. - Diff auf JP-Staging-Bail anwenden; synthetische Last < 5 RPS.
- Doctor zweimal; scheitern, wenn Warnungen > Baseline + 1.
- Promote HK; 24 h Ablehnungen beobachten.
- Promote SG/KR Lese-Agenten; p95 beobachten.
- Promote US nur nach Finanz-Freigabe bei Trading-Modellen.
- Rollback per Tarball + launchd-Neustart, wenn Ablehnungen > 15/h in einer Region.
curl nach Neustart (keine Schein-Grün)
Lokalen Health-Endpunkt 5 mal mit 200 ms Pause ansprechen; der zweite Call lädt Plugins, die Allowlists erneut erzwingen. Build-Hashes speichern. TLS am Reverse-Proxy? Zusätzlich 127.0.0.1:18789 curlen.
| Probe | OK | Fehler bedeutet |
|---|---|---|
| GET /health lokal | HTTP 200, Body OK | Gateway nach Neustart nicht gebunden |
| Completion-Probe | Text nicht leer | stiller Allowlist-Pfad |
| Cron-Dry-Run | gleiche Modell-ID wie manuell | Umgebungsdrift |
Proxies, die X-OpenClaw-Build entfernen, erfordern git describe im Incident-Kanal — sonst ~47 Minuten verlorene Doctor-Zyklen durch vergleichbare JSON5 aus verschiedenen semver-Zeilen.
FAQ
Kurz allow-all? Nur in Wegwerf-Clones; nie auf geteilten MacLogin-Bails mit gemeinsamem Home-Layout.
Groß-/Kleinschreibung? Ja — IDs als case-sensitiv behandeln.
Owner Quartals-Katalogreview? Plattform-Engineering plus KI-Governance; Roster in Runbooks verlinkt von Hilfe.
Warum Mac mini M4 Zyklen verkürzt
M4 hält Doctor und npm-verlinkte Gateway-Neustarts unter 90 s Wandzeit — praktisch für fünf Metropolen vor Geschäftsbeginn. Unified Memory wärmt Tokenizer-Caches für parallele curl-Proben. HK/JP/KR/SG/US-Flotte erlaubt JP-first-Verfügbarkeit ohne US-Weckrufe pro Tweak.
Zusätzliche Kanarien über Preise sind günstiger als Prod-Ablehnungen: strengere Allowlist-Replika 24/7 online, JSON5 erst nach vollem Cron-Zyklus heben.
OpenClaw-Allowlist-Änderungen auf dediziertem Apple Silicon ausführen
Doctor-gegateltes JSON5 mit MacLogin-Knoten in HK, JP, KR, SG und US koppeln.