Skip to content

ResolverError

Raised when a resolver fails to resolve a value.

When It's Raised

  • Environment variable not found (and no default provided)
  • File include fails (file not found, permission denied)
  • HTTP request fails (network error, non-200 response)
  • Invalid resolver syntax

Example

from holoconf import Config, ResolverError

config = Config.loads("""
database:
  password: ${env:DB_PASSWORD}
""")

try:
    # Fails if DB_PASSWORD environment variable is not set
    password = config.get("database.password")
except ResolverError as e:
    print(f"Resolution failed: {e}")
    # Resolution failed: Environment variable 'DB_PASSWORD' not found

Providing Defaults

Avoid ResolverError by providing default values:

database:
  # With default - won't raise if DB_PASSWORD is not set
  password: ${env:DB_PASSWORD,default_password}

Handling

from holoconf import Config, ResolverError
import os

config = Config.load("config.yaml")

try:
    password = config.get("database.password")
except ResolverError:
    # Fall back to interactive input or other source
    password = os.environ.get("DB_PASSWORD") or input("Enter DB password: ")

Class Reference

Bases: HoloconfError

Error during value resolution.

Raised when a resolver fails during value resolution. Common causes include missing environment variables (without defaults), file not found for file resolver, HTTP request failures, or invalid resolver syntax.