-
-
Notifications
You must be signed in to change notification settings - Fork 79.2k
configure wizard: models block is append-only — stale/delisted model entries never pruned #80347
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Summary
The
openclaw configurewizard treats themodels:block inopenclaw.jsonas an additive registry/alias store. It adds or updates entries when you select a new model, but it never removes entries that have become stale, delisted, or were otherwise removed from the upstream provider's catalog.Steps to Reproduce
openclaw configureand add several model providers over timemodels:block inopenclaw.jsonstill contains the old entriesActual Behavior
Stale/delisted model entries persist in the
models:block indefinitely. The wizard only adds or updates keys — it never removes them. This is append-only behavior that accumulates dead entries across version upgrades.Concrete Example
The following OpenRouter models were all delisted by OpenRouter but remained in the
models:block of our config:openrouter/elephant-alphaopenrouter/healer-alphaopenrouter/hunter-alphaNone of these were selected in the configure wizard's multi-select, none were usable as primary or fallback, and all had been removed from OpenRouter's catalog. Yet they persisted in
openclaw.jsonuntil manually pruned.Expected Behavior
The configure wizard should:
--cleanup/--pruneoption that scans themodels:block and removes entries not referenced by any agent's primary/fallbackImpact
models:accumulates dead entries over time with no cleanup mechanismWorkaround
Manually edit
openclaw.jsonand remove stalemodels:entries, then validate JSON. Backup first.Environment
2026.5.7(npm)/root/.openclaw/openclaw.jsonPrior Art
Issue #70643 (
Concurrent writes to openclaw.json produce invalid JSON) is adjacent but different — that covers write safety. This covers the wizard's semantic behavior around stale model lifecycle.