From e0802055bc3e06002e0caec22d45abefaaa5afcd Mon Sep 17 00:00:00 2001 From: dittops Date: Sun, 2 Nov 2025 06:32:49 +0000 Subject: [PATCH] fix(budgateway): enable graceful degradation for unsupported guardrail providers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Convert hard error into warning when encountering unsupported provider types in guardrail configuration. This allows the system to continue operation by skipping unsupported providers instead of failing completely. Changes: - Replace error return with warning log for unsupported provider types - Add continue statement to skip validation for unsupported providers - Improve error message to indicate provider will be skipped during execution This enables better forward compatibility when new provider types are added externally. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../tensorzero-internal/src/guardrail_table.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/services/budgateway/tensorzero-internal/src/guardrail_table.rs b/services/budgateway/tensorzero-internal/src/guardrail_table.rs index 3f6bbb2e2..d4c232a8d 100644 --- a/services/budgateway/tensorzero-internal/src/guardrail_table.rs +++ b/services/budgateway/tensorzero-internal/src/guardrail_table.rs @@ -163,14 +163,13 @@ impl GuardrailConfig { for provider in &self.providers { if !SUPPORTED_PROVIDERS.contains(&provider.provider_type.as_str()) { - return Err(crate::error::Error::new( - crate::error::ErrorDetails::Config { - message: format!( - "Unsupported provider type '{}' in guardrail '{}'", - provider.provider_type, self.id - ), - }, - )); + // Log warning instead of returning error for unknown providers + tracing::warn!( + "Unsupported provider type '{}' in guardrail '{}' - this provider will be skipped during execution", + provider.provider_type, + self.id + ); + continue; // Skip validation for unsupported providers } // Validate that enabled probes are not empty