tao-shen Claude Opus 4.6 (1M context) commited on
Commit
985bd7b
Β·
1 Parent(s): 555e411

fix: clear stale default model when provider API key is missing

Browse files

God/Home had openrouter/... as default model from backup but no
OPENROUTER_API_KEY, causing all agent dispatches to fail with
"No API key found for provider openrouter".

Now detects when default model's provider has no API key and clears it,
letting OpenClaw pick a working provider automatically.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Files changed (1) hide show
  1. scripts/sync_hf.py +22 -0
scripts/sync_hf.py CHANGED
@@ -468,6 +468,28 @@ class OpenClawFullSync:
468
 
469
  if OPENCLAW_DEFAULT_MODEL:
470
  data["agents"]["defaults"]["model"]["primary"] = OPENCLAW_DEFAULT_MODEL
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
471
 
472
  # ── ACP (Agent Client Protocol) β€” native Claude Code integration ──
473
  data["acp"] = {
 
468
 
469
  if OPENCLAW_DEFAULT_MODEL:
470
  data["agents"]["defaults"]["model"]["primary"] = OPENCLAW_DEFAULT_MODEL
471
+ else:
472
+ # Clean up stale default model pointing to a provider that doesn't exist.
473
+ # e.g. openrouter/... when OPENROUTER_API_KEY is not set.
474
+ current_primary = data.get("agents", {}).get("defaults", {}).get("model", {}).get("primary", "")
475
+ if current_primary:
476
+ provider_prefix = current_primary.split("/")[0] if "/" in current_primary else ""
477
+ if provider_prefix:
478
+ # Check if this provider has an API key in the environment
479
+ provider_key_map = {
480
+ "openrouter": "OPENROUTER_API_KEY",
481
+ "openai": "OPENAI_API_KEY",
482
+ "zhipu": "ZHIPU_API_KEY",
483
+ "anthropic": "ANTHROPIC_API_KEY",
484
+ "google": "GOOGLE_API_KEY",
485
+ "mistral": "MISTRAL_API_KEY",
486
+ "cohere": "COHERE_API_KEY",
487
+ "nvidia": "NVIDIA_API_KEY",
488
+ }
489
+ env_key = provider_key_map.get(provider_prefix, "")
490
+ if env_key and not os.environ.get(env_key):
491
+ print(f"[SYNC] Clearing stale default model '{current_primary}' (no {env_key})")
492
+ data["agents"]["defaults"]["model"].pop("primary", None)
493
 
494
  # ── ACP (Agent Client Protocol) β€” native Claude Code integration ──
495
  data["acp"] = {