You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ProblemThe /models endpoint (and forge list models) fetches models from all configured providers concurrently. Currently, if any provider returns an error (e.g. 500 from an overloaded or misconfigured endpoint), the entire operation fails — all models become unavailable even if other providers are working fine.This is caused by get_all_provider_models() in crates/forge_app/src/app.rs using collect::<anyhow::Result<Vec<_>>>() which short-circuits on the first error from any provider.## Expected Behavior- Individual provider failures should be logged as warnings.- Models from working providers should still be returned.- Only if every configured provider fails should an error be returned to the caller.## Proposed FixChange the concurrent result collection to separate successes from failures, log each failure via tracing::warn!, and only surface an error when all providers failed.
ProblemThe
/modelsendpoint (andforge list models) fetches models from all configured providers concurrently. Currently, if any provider returns an error (e.g. 500 from an overloaded or misconfigured endpoint), the entire operation fails — all models become unavailable even if other providers are working fine.This is caused byget_all_provider_models()incrates/forge_app/src/app.rsusingcollect::<anyhow::Result<Vec<_>>>()which short-circuits on the first error from any provider.## Expected Behavior- Individual provider failures should be logged as warnings.- Models from working providers should still be returned.- Only if every configured provider fails should an error be returned to the caller.## Proposed FixChange the concurrent result collection to separate successes from failures, log each failure viatracing::warn!, and only surface an error when all providers failed.