deepseek-ai/deepseek-harness · error
agent-presets: cannot read preset root ${dir}: ${String(erro
Error message
agent-presets: cannot read preset root ${dir}: ${String(error)} What it means
Error "agent-presets: cannot read preset root ${dir}: ${String(error)}" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/preset/agent-presets/src/discovery.ts:146
* not exist until the first locally authored preset, and naming a default
* that no root supplies already fails loud at resolution.
*
* Every directory whose name is a usable preset id is a roster row — broken
* when its composition is missing or unloadable. A directory named outside
* {@link PRESET_ID} is skipped instead: no copy could ever claim that name,
* so it blocks nothing, and reporting `.DS_Store`-grade residue as broken
* presets would teach users to ignore the marker.
* @param root - the directory and the trust its presets inherit.
* @returns the root's presets ordered by id.
*/
export async function scanRoot(root: PresetRoot): Promise<AgentPreset[]> {
const dir = resolve(expandHomePath(root.path))
let children
try {
children = await readdir(dir, { withFileTypes: true })
} catch (error) {
if ((error as NodeJS.ErrnoException).code === 'ENOENT') return []
throw new Error(`agent-presets: cannot read preset root ${dir}: ${String(error)}`, { cause: error })
}
const found: AgentPreset[] = []
for (const child of children) {
if (!child.isDirectory() || !PRESET_ID.test(child.name)) continue
const directory = join(dir, child.name)
const path = join(directory, COMPOSITION_FILE)
const broken = await isFile(path)
? await compositionProblem(path)
: `the composition file ${COMPOSITION_FILE} is missing — the directory still occupies the id; delete it or restore the file`
// Display text only, and never fatal: a preset with unreadable metadata
// still mounts, it just shows its id.
const metadata = await readPresetMetadata(directory)
found.push({
id: child.name, trust: root.trust, path, ...metadata,
...broken === undefined ? {} : { broken },
})
}
// Declared order first so the shipped set reads by capability; everythingView on GitHub (pinned to b150a551b8)
Solutions
- Fix the preset root path or its permissions per the included error.
When it happens
Trigger: Thrown at packages/preset/agent-presets/src/discovery.ts:146 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24).
Data as JSON: /api/errors/241c9a3eae0cfdc8.
Report an issue: GitHub.