Spaces:
Running
Running
fix: clear stale default model when provider API key is missing
Browse filesGod/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>
- 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"] = {
|