fix(backend): add defensive error handling for deprecated models

Add try/except in CredentialsFieldInfo.discriminate() to catch KeyError
when a deprecated model value is used, providing a helpful error message
instead of a cryptic KeyError.
This commit is contained in:
Bently
2026-01-26 14:23:43 +00:00
parent bc43abde72
commit 5c0161cb61

View File

@@ -666,10 +666,16 @@ class CredentialsFieldInfo(BaseModel, Generic[CP, CT]):
if not (self.discriminator and self.discriminator_mapping):
return self
try:
provider = self.discriminator_mapping[discriminator_value]
except KeyError:
raise ValueError(
f"Model '{discriminator_value}' is not supported. "
"It may have been deprecated. Please update your agent configuration."
)
return CredentialsFieldInfo(
credentials_provider=frozenset(
[self.discriminator_mapping[discriminator_value]]
),
credentials_provider=frozenset([provider]),
credentials_types=self.supported_types,
credentials_scopes=self.required_scopes,
discriminator=self.discriminator,