Skip to main content

Exception Hierarchy

NeMo Guardrails provides a structured exception hierarchy for handling different types of errors.

ConfigurationError

Base class for Guardrails configuration validation errors.
This is a base exception for all configuration-related errors.

InvalidModelConfigurationError

Raised when a guardrail configuration’s model is invalid.

Common Causes

  • Missing model field in model configuration
  • Conflicting model name specifications (both in model field and parameters)
  • Empty or whitespace-only model names

InvalidRailsConfigurationError

Raised when rails configuration is invalid.

Common Causes

  • Input/output rail references a flow that doesn’t exist
  • Rail references a model that doesn’t exist in config
  • Missing required prompt template
  • Invalid rail parameters
  • Passthrough mode and single call mode enabled simultaneously

StreamingNotSupportedError

Raised when streaming is requested but not supported by the configuration.

Common Causes

  • Output rails are configured but rails.output.streaming.enabled is False
  • Using stream_async() with configurations that don’t support streaming

Fix

Enable streaming in your configuration:
config.yml

LLMCallException

A wrapper around LLM call invocation exceptions.
Union[BaseException, str]
required
The original exception that occurred.
Optional[str]
Optional context to prepend (for example, the model name or endpoint).

Common Causes

  • Invalid API credentials
  • Network connectivity issues
  • Model not found or unavailable
  • Rate limiting
  • Invalid request parameters

Error Handling Best Practices

1. Catch Specific Exceptions

2. Validate Configuration Early

3. Handle Streaming Errors Gracefully

4. Retry LLM Calls