diff --git a/src/features/background-agent/manager.ts b/src/features/background-agent/manager.ts index 42d80d14..065e4ed2 100644 --- a/src/features/background-agent/manager.ts +++ b/src/features/background-agent/manager.ts @@ -945,14 +945,14 @@ export class BackgroundManager { const attemptCount = task.attemptCount ?? 0 const providerModelsCache = readProviderModelsCache() const connectedProviders = providerModelsCache?.connected ?? readConnectedProvidersCache() - const connectedSet = connectedProviders ? new Set(connectedProviders) : null + const connectedSet = connectedProviders ? new Set(connectedProviders.map(p => p.toLowerCase())) : null const isReachable = (entry: FallbackEntry): boolean => { if (!connectedSet) return true // Gate only on provider connectivity. Provider model lists can be stale/incomplete, // especially after users manually add models to opencode.json. - return entry.providers.some((p) => connectedSet.has(p)) + return entry.providers.some((p) => connectedSet.has(p.toLowerCase())) } let selectedAttemptCount = attemptCount diff --git a/src/shared/model-error-classifier.ts b/src/shared/model-error-classifier.ts index 65366bf3..defcef67 100644 --- a/src/shared/model-error-classifier.ts +++ b/src/shared/model-error-classifier.ts @@ -123,9 +123,9 @@ export function selectFallbackProvider( ): string { const connectedProviders = readConnectedProvidersCache() if (connectedProviders) { - const connectedSet = new Set(connectedProviders) + const connectedSet = new Set(connectedProviders.map(p => p.toLowerCase())) for (const provider of providers) { - if (connectedSet.has(provider)) { + if (connectedSet.has(provider.toLowerCase())) { return provider } }