Excpetions
steamlayer_core.domain.exceptions
All domain-specific exceptions. The public API only raises these — never raw
OSError, requests.exceptions.*, etc. Wrappers should catch at
this boundary and translate to HTTP status codes or user-facing messages.
Exception hierarchy
SteamLayerError (base)
├── ConfigurationError (bad inputs before work starts)
├── NetworkError (transport-level failure)
├── AppIDResolutionError (base for resolution failures)
│ ├── AppIDNotFoundError (exhausted all strategies, nothing found)
│ ├── AmbiguousMatchError (multiple candidates scored too close to auto-select)
│ └── LowConfidenceError (best candidate scored below acceptance threshold)
├── DLCHydrationError (DLC fetching failed, possibly partial)
│ └── DLCCacheError (cache read/write failed)
└── PatchError (filesystem / patching errors)
├── VaultError (backup vault problems)
└── EmulatorBinaryError (Goldberg / Steamless not found)
AppIDNotFoundError
Bases: AppIDResolutionError
Raised when every resolution strategy (local, index, web) was exhausted without finding a plausible match.
Attributes:
| Name | Type | Description |
|---|---|---|
game_name |
The folder/display name that was searched for.
|
|
Source code in steamlayer_core/domain/exceptions.py
AppIDResolutionError
Bases: SteamLayerError
Base class for all AppID resolution failures.
ConfigurationError
Bases: SteamLayerError
Raised when caller-supplied configuration is invalid before any work starts.
Examples: unknown language code, negative TTL, unrecognised config key.
DLCCacheError
Bases: DLCHydrationError
Raised when the DLC cache cannot be read or written (permissions, corruption).
Source code in steamlayer_core/domain/exceptions.py
DLCHydrationError
Bases: SteamLayerError
Raised when DLC metadata fetching fails entirely.
A partial failure (some DLCs resolved, some used fallback names) is NOT
raised as an exception — it is reflected in the DLCResult model.
Source code in steamlayer_core/domain/exceptions.py
EmulatorBinaryError
Bases: PatchError
Raised when a required vendor binary is missing or fails to execute.
Attributes:
| Name | Type | Description |
|---|---|---|
binary_name |
Human-readable name of the missing binary.
|
|
Source code in steamlayer_core/domain/exceptions.py
NetworkError
Bases: SteamLayerError
Transport-level failure (DNS, connection refused, timeout, non-2xx).
Attributes:
| Name | Type | Description |
|---|---|---|
url |
The URL that failed (if known).
|
|
status_code |
HTTP status code (None for connection-level errors).
|
|
Source code in steamlayer_core/domain/exceptions.py
PatchError
Bases: SteamLayerError
Base class for patching and filesystem errors.
SteamLayerError
VaultError
Bases: PatchError
Raised when the backup vault cannot be created, read, or restored from.
Attributes:
| Name | Type | Description |
|---|---|---|
vault_path |
Path to the vault directory.
|
|