provider directory failed to load: causes and recovery
provider directory failed to load sounds like an internal error; it is usually a path, permission, or format problem. Reinstalling does not help, because the provider directory lives in the data directory.
Three checks
Check in this order; most cases end in the first two.
| Check | Question | Symptom |
|---|---|---|
| Path | Does the directory exist and is it right? | Empty or wrong directory |
| Permissions | Can the current user read it? | Read rejected |
| Format | Are fields and types valid? | Parsing failure |
Path problems are most common. The provider directory is under the data directory; a changed data directory, migration, or permission change makes it unavailable.
Permissions are next. The service user and terminal user may differ; a directory readable by one may not be readable by the service.
Format problems follow. Hand-edited configuration with missing fields or wrong types fails parsing.
Path and data directory
Confirm which directory the service actually reads.
- Confirm the data directory with dsh --dump-config or configuration.
- Confirm the provider directory's location and existence.
- Check whether the service runs under a different data directory.
- Compare with the documentation for the expected structure.
- Do not copy plugins or configuration across directories.
"I fixed it but it still fails" usually means editing the wrong directory. Multiple installs or environments leave similar directories; confirm the effective one.
Create or restore the directory structure from documentation, not by guessing. An empty directory that loads sometimes still produces no providers.
Permissions
Readable is not the same as accessible.
- Compare the service user with the directory owner.
- Check read and execute permission on the directory.
- Check configuration file read permission.
- Check whether the parent directory blocks traversal.
- Change only necessary permissions, avoiding 777.
Loose permissions fix symptoms and create risks. Make only the service user able to read; do not open everything.
Containers and services add layers. Mapped volumes and users differ; permission problems on the host may still fail inside.
Format and configuration
Format errors produce explicit parse failures; check fields and types.
- Compare field names and structure with documentation.
- Confirm types: strings, arrays, and objects.
- Check trailing commas and indentation.
- Validate with a linter or parser where available.
- Back up before editing.
Hand-edited configuration is error-prone. Use a minimal valid configuration first, then add providers.
Format validation is not semantic validation. Passwords and addresses may still be wrong even when parsing succeeds.
Isolation test
Separating provider problems from plugin conflicts takes two steps.
- Disable recently installed provider plugins and restart.
- If the error disappears, it is plugin-related; check compatibility and configuration.
- If it persists, the directory or configuration itself is the problem.
- Restore a minimal valid configuration to verify.
- Re-enable plugins one at a time.
Disabling is not uninstalling. Keep the directory and configuration for later diagnosis.
Record the comparison result. Which change recovered the state is the most useful evidence.
Recovery order
From least destructive to most.
- Read the log: the full error points to path, permission, or parse.
- Fix the path: correct the data directory or create the structure.
- Fix permissions: make only the service user readable.
- Fix format: restore a minimal valid configuration.
- Isolate plugins: disable recent ones.
- Backup and reinstall: only when configuration is corrupted beyond recovery.
Reinstalling last is deliberate. It rarely fixes path and permission issues and may obscure the cause.
Prevention
Three habits reduce recurrence.
- Record data directory and provider directory locations.
- Back up configuration before editing.
- Change one item at a time and verify startup.
Configuration is infrastructure. Records beat guessing.
Next steps
Path, permissions, format. For provider setup, read How to configure models. For missing models, read Model list incomplete. For key errors, read API key invalid and model discovery 404.
Sources: DeepSeek Harness docs, dsh CLI README, deepseek-harness repository
FAQ
A provider directory load failure right after installing a provider plugin usually points to three causes. The directory may be missing, unreadable by permissions, or written in an incompatible format.
The provider directory is what to inspect first: whether it exists, is readable, and contains valid provider entries. The error names the directory, not a single settings file.
Reinstalling DeepSeek Harness usually will not fix a provider directory failure, because the directory lives in the data directory and survives reinstall. Fix path, permissions, or format.
To tell a provider problem from a plugin conflict in DeepSeek Harness, disable recent provider plugins and retest. If it still fails, the directory or configuration is at fault.
Related Terms
- provider directory
- The provider directory stores model provider configuration and is loaded at startup; invalid structure or unreadable permissions cause load failures.— DeepSeek Harness docs
- data directory
- The data directory is the DSH_HOME root holding sessions, plugins, and provider configuration; reinstalling does not change it.— DeepSeek Harness docs
- permissions
- Permissions define whether the current user can read or write a directory or file; insufficient permissions cause loading or writing failures.— dsh CLI README
- configuration format
- Configuration format is the structure required by a configuration file; wrong fields or types make loading fail.— DeepSeek Harness docs
Sources
- DeepSeek Harness docs· deepseek-harness
- dsh CLI README· deepseek-ai
- deepseek-harness repository· deepseek-ai