deezer/spleeter · error · SpleeterError
Configuration file {descriptor} not found
Error message
Configuration file {descriptor} not found What it means
When the descriptor does not use the embedded 'spleeter:' prefix, load_configuration treats it as a plain filesystem path to a JSON configuration file and raises SpleeterError if os.path.exists says the file is not there. It means the path you supplied (relative or absolute) does not resolve to an existing file from the current working directory. It is a pre-flight check so users get a clear message instead of an open() FileNotFoundError.
Source
Thrown at spleeter/utils/configuration.py:49
Dict:
Loaded description as dict.
Raises:
ValueError:
If required embedded configuration does not exists.
SpleeterError:
If required configuration file does not exists.
"""
# Embedded configuration reading.
if descriptor.startswith(_EMBEDDED_CONFIGURATION_PREFIX):
name = descriptor[len(_EMBEDDED_CONFIGURATION_PREFIX) :]
if not loader.is_resource(resources, f"{name}.json"):
raise SpleeterError(f"No embedded configuration {name} found")
with loader.open_text(resources, f"{name}.json") as stream:
return json.load(stream)
# Standard file reading.
if not exists(descriptor):
raise SpleeterError(f"Configuration file {descriptor} not found")
with open(descriptor, "r") as stream:
return json.load(stream)
View on GitHub (pinned to c8854001ac)
Solutions
- Verify the file exists at that exact path (ls/pathlib.Path(descriptor).exists()) and fix the spelling
- Use an absolute path built from a known anchor, e.g. Path(__file__).parent / 'configs' / 'my.json', to be CWD-independent
- If you meant a bundled config, prefix it: 'spleeter:2stems' instead of a bare path
- In containers/CI, confirm the config file or volume is actually copied/mounted into the runtime environment
Example fix
// before
params = load_configuration('stems_config.json') # not found from this CWD
// after
from pathlib import Path
params = load_configuration(str(Path(__file__).parent / 'configs' / 'stems_config.json')) Defensive patterns
Strategy: validation
Validate before calling
from os.path import exists
descriptor = 'configs/my_stems.json'
assert exists(descriptor), f'Configuration file not found: {descriptor} (cwd-dependent)' Try / catch
from spleeter import SpleeterError
try:
params = load_configuration(descriptor)
except SpleeterError as e:
if 'not found' in str(e):
print(f'Check path/cwd for {descriptor}; or use an embedded spleeter:<name> config')
else:
raise Prevention
- Build config paths with pathlib relative to __file__, not the process CWD
- Print os.getcwd() when debugging 'file not found' in CI or containers
- Remember bare names like '2stems.json' are NOT embedded — use the spleeter: prefix for bundled configs
- Confirm config files/volumes are copied into Docker images and deployed artifacts
When it happens
Trigger: Calling load_configuration('configs/my.json') or Separator('configs/my.json') (training entry points call this too) where the path is misspelled, relative to the wrong CWD, or the file was never created.
Common situations: Running a training script from a different working directory than the one the relative config path assumes; renamed or deleted config files; passing an embedded-style name without the 'spleeter:' prefix (e.g. '2stems.json' expecting it to resolve to a bundled config); container images where the config volume was not mounted.
Related errors
- Separated source path conflict : {path},please check your fi
- No embedded configuration {name} found
- {adapter_class_name} is not a valid AudioAdapter class
- {} binary not found
- output directory does not exists: {directory}
AI-assisted analysis of deezer/spleeter@c8854001ac (2026-08-28).
Data as JSON: /api/errors/94d59d6417b52159.
Report an issue: GitHub.