deepseek-ai/deepseek-harness · error
Windows ACL temp root must be outside the workspace: workspa
Error message
Windows ACL temp root must be outside the workspace: workspace=${workspaceRoot}; temp=${tempRoot} What it means
Error "Windows ACL temp root must be outside the workspace: workspace=${workspaceRoot}; temp=${tempRoot}" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/sandbox/sandbox-windows-acl/src/path-boundary.ts:24
import { realpathSync } from 'node:fs'
import { isAbsolute, relative, sep } from 'node:path'
/** Whether `root` is the same canonical directory as `candidate` or contains it. */
function containsDirectory(root: string, candidate: string): boolean {
const relation = relative(realpathSync.native(root), realpathSync.native(candidate))
return relation === '' || (!isAbsolute(relation) && relation !== '..' && !relation.startsWith(`..${sep}`))
}
/**
* Reject a temp parent that is inside the workspace: every child created
* below it would inherit the standing workspace capability.
* @param workspaceRoot - the canonical workspace root that receives the standing ACE.
* @param tempRoot - the existing parent beneath which a private temp child would be created.
*/
export function assertTempRootOutsideWorkspace(workspaceRoot: string, tempRoot: string): void {
if (containsDirectory(workspaceRoot, tempRoot)) {
throw new Error(`Windows ACL temp root must be outside the workspace: workspace=${workspaceRoot}; temp=${tempRoot}`)
}
}
/**
* Reject overlap between an actual private temp directory and any writable
* directory: either inheritance direction would merge the two capabilities.
* @param writableDirs - directories carrying the standing workspace capability.
* @param tempDir - the existing directory carrying the revocable temp capability.
*/
export function assertPrivateTempDisjoint(writableDirs: readonly string[], tempDir: string): void {
for (const writableDir of writableDirs) {
if (containsDirectory(writableDir, tempDir) || containsDirectory(tempDir, writableDir)) {
throw new Error(`AclSandbox private temp directory must be disjoint from writable directories: writable=${writableDir}; temp=${tempDir}`)
}
}
}
View on GitHub (pinned to b150a551b8)
Solutions
- Point tempRoot at a directory outside the workspace tree.
- Set TEMP/TMP to a location outside the workspace, or pass an explicit tempRoot.
When it happens
Trigger: Thrown at packages/sandbox/sandbox-windows-acl/src/path-boundary.ts:24 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/00f60a2a101d3633.
Report an issue: GitHub.