freqtrade/freqtrade · error · OperationalException

Directory `{folder}` does not exist. Please use `freqtrade c

Error message

Directory `{folder}` does not exist. Please use `freqtrade create-userdir` to create a user directory

What it means

Raised by `create_datadir()`-adjacent logic in directory_operations when the user-data directory does not exist and `create_dir` is False. Freqtrade needs `user_data/` with standard subfolders (strategies, data, hyperopts, ...) before it can run.

Source

Thrown at freqtrade/configuration/directory_operations.py:75

    sub_dirs = [
        "backtest_results",
        "data",
        USERPATH_HYPEROPTS,
        "hyperopt_results",
        "logs",
        USERPATH_NOTEBOOKS,
        "plot",
        USERPATH_STRATEGIES,
        USERPATH_FREQAIMODELS,
    ]
    folder = Path(directory)
    chown_user_directory(folder)
    if not folder.is_dir():
        if create_dir:
            folder.mkdir(parents=True)
            logger.info(f"Created user-data directory: {folder}")
        else:
            raise OperationalException(
                f"Directory `{folder}` does not exist. "
                "Please use `freqtrade create-userdir` to create a user directory"
            )

    # Create required subdirectories
    for f in sub_dirs:
        subfolder = folder / f
        if not subfolder.is_dir():
            if subfolder.exists() or subfolder.is_symlink():
                raise OperationalException(
                    f"File `{subfolder}` exists already and is not a directory. "
                    "Freqtrade requires this to be a directory."
                )
            subfolder.mkdir(parents=False)
    return folder


def copy_sample_files(directory: Path, overwrite: bool = False) -> None:

View on GitHub (pinned to 1c8edfe4d1)

Solutions

  1. Run `freqtrade create-userdir --userdir user_data`
  2. Or fix the `--userdir` path / typo in the config's `user_data_dir` setting
  3. Use an absolute path to avoid cwd-dependent resolution

Example fix

# before
freqtrade list-strategies --userdir user_dat  # typo

# after
freqtrade create-userdir --userdir user_data
freqtrade list-strategies --userdir user_data
Defensive patterns

Strategy: validation

Validate before calling

from pathlib import Path
ud = Path('user_data')
if not ud.is_dir():
    raise SystemExit('run: freqtrade create-userdir --userdir user_data')

Prevention

When it happens

Trigger: Starting the bot/backtest with `--userdir` pointing to a missing path in a context that must not auto-create it (e.g. `freqtrade list-strategies` validation); `folder.is_dir()` is false and `create_dir` is False.

Common situations: Fresh clone where `freqtrade create-userdir --userdir user_data` was never run; typo in `--userdir`; running from the wrong working directory with a relative path.

Related errors


AI-assisted analysis of freqtrade/freqtrade@1c8edfe4d1 (2026-08-15). Data as JSON: /api/errors/0c1ccbe899902ce3. Report an issue: GitHub.