{"record":{"id":"90a1eadb41017680","repo":"deepseek-ai/deepseek-harness","slug":"fs-aborted-90a1ea","errorCode":"FS_ABORTED","errorMessage":"${verb} aborted","messagePattern":"(.+?) aborted","errorType":"error_code","errorClass":"FsError","httpStatus":null,"severity":"error","filePath":"packages/fs/fs-local/src/fsio.ts","lineNumber":54,"sourceCode":"  return error instanceof Error && 'code' in error && error.code === 'ENOTDIR'\n}\n\nfunction isAbortError(error: unknown): boolean {\n  return error instanceof Error && error.name === 'AbortError'\n}\n\n/* v8 ignore start -- composes secondary cleanup-failure messages, which require a filesystem/kernel fault after the primary failure. */\nfunction errorMessage(error: unknown): string {\n  return error instanceof Error ? error.message : String(error)\n}\n/* v8 ignore stop */\n\nfunction isPermissionError(error: unknown): boolean {\n  return error instanceof Error && 'code' in error && (error.code === 'EACCES' || error.code === 'EPERM')\n}\n\nfunction throwIfAborted(signal: AbortSignal | undefined, verb: string): void {\n  if (signal?.aborted) throw new FsError(`${verb} aborted`, 'FS_ABORTED')\n}\n\n/**\n * `readFile` with the supplied signal, translating a mid-read `AbortError` into\n * the seam's structured `FsError('FS_ABORTED')` (Node rejects an aborted\n * `readFile` with a bare `AbortError`, which would otherwise escape the seam's\n * error taxonomy — the streaming/write paths translate it the same way).\n */\nasync function readFileAbortable(absolutePath: string, verb: 'read' | 'edit', signal?: AbortSignal): Promise<Buffer> {\n  try {\n    return await readFile(absolutePath, signal ? { signal } : {})\n  } catch (error: unknown) {\n    /* v8 ignore next 2 -- a non-abort readFile rejection needs a permission/IO fault racing an open file. */\n    if (!isAbortError(error)) throw error\n    throw new FsError(`${verb} aborted`, 'FS_ABORTED')\n  }\n}\n","sourceCodeStart":36,"sourceCodeEnd":72,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/fs/fs-local/src/fsio.ts#L36-L72","documentation":"Error \"${verb} aborted\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/fs/fs-local/src/fsio.ts:54 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b150a551b8d465e31e418e1b2eaf5e79bbb7d28e","analyzedAt":"2026-08-24T18:12:29.105Z","schemaVersion":2},"datasetVersion":"2026-08-24T22:17:12.610Z"}