deepseek-ai/deepseek-harness · error · Error
fs-e2b: canonical path is not absolute
Error message
fs-e2b: canonical path is not absolute
What it means
Error "fs-e2b: canonical path is not absolute" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/e2b/fs-e2b/src/index.ts:81
function decodeCanonicalPath(encoded: string): string {
if (encoded.length === 0 || !BASE64.test(encoded)) {
throw new Error('fs-e2b: canonical path transport returned invalid base64')
}
const framed = Buffer.from(encoded, 'base64')
if (framed.toString('base64') !== encoded
|| framed.length < 2
|| framed.at(-1) !== 0
|| framed.subarray(0, -1).includes(0)) {
throw new Error('fs-e2b: canonical path transport returned invalid NUL framing')
}
let path: string
try {
path = new TextDecoder('utf-8', { fatal: true }).decode(framed.subarray(0, -1))
} catch (error: unknown) {
throw new Error('fs-e2b: canonical path is not valid UTF-8', { cause: error })
}
if (!posix.isAbsolute(path)) throw new Error('fs-e2b: canonical path is not absolute')
return path
}
function signalOpts(signal: AbortSignal | undefined): { signal?: AbortSignal } {
return signal === undefined ? {} : { signal }
}
function commandOpts(signal: AbortSignal | undefined): { envs: Record<string, string>; signal?: AbortSignal } {
return { envs: e2bControlEnvs(), ...signalOpts(signal) }
}
async function openReadStream(
sandbox: Sandbox,
target: FsTarget,
signal: AbortSignal | undefined,
): Promise<ReadableStream<Uint8Array>> {
try {
// The pinned SDK's stream overload lies for empty files: content-length 0View on GitHub (pinned to b150a551b8)
When it happens
Trigger: Thrown at packages/e2b/fs-e2b/src/index.ts:81 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/c653c541b1a63450.
Report an issue: GitHub.