From d948e63340b37d1dd5f13fa2bb2e380db0f337ec Mon Sep 17 00:00:00 2001 From: ehhuang Date: Wed, 3 Sep 2025 07:11:59 -0700 Subject: [PATCH] chore: Improve error message for missing provider dependencies (#3315) Generated with CC: Replace cryptic KeyError with clear, actionable error message that shows: - Which API the failing provider belongs to - The provider ID and type that's failing - Which dependency is missing - Clear instructions on how to fix the issue ## Test plan Use a run config with Agents API and no safety provider Before: KeyError: After: Failed to resolve 'agents' provider 'meta-reference' of type 'inline::meta-reference': required dependency 'safety' is not available. Please add a 'safety' provider to your configuration or check if the provider is properly configured. --- llama_stack/core/resolver.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/llama_stack/core/resolver.py b/llama_stack/core/resolver.py index 7ac98dac8..a8ad03e1a 100644 --- a/llama_stack/core/resolver.py +++ b/llama_stack/core/resolver.py @@ -284,7 +284,15 @@ async def instantiate_providers( if provider.provider_id is None: continue - deps = {a: impls[a] for a in provider.spec.api_dependencies} + try: + deps = {a: impls[a] for a in provider.spec.api_dependencies} + except KeyError as e: + missing_api = e.args[0] + raise RuntimeError( + f"Failed to resolve '{provider.spec.api.value}' provider '{provider.provider_id}' of type '{provider.spec.provider_type}': " + f"required dependency '{missing_api.value}' is not available. " + f"Please add a '{missing_api.value}' provider to your configuration or check if the provider is properly configured." + ) from e for a in provider.spec.optional_api_dependencies: if a in impls: deps[a] = impls[a]