deepseek-ai/deepseek-harness · error · FsError
FS_NOT_OBSERVED
FS_NOT_OBSERVED
Error message
edit requires reading "${target.displayPath}" first What it means
Error "edit requires reading "${target.displayPath}" first" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/fs/fs-observation-policy/src/index.ts:82
*/
writeIntent(target: FsTarget, actor: object | undefined): FsWriteIntent {
const owner = this.owner(actor)
const prior = owner ? this.get(owner, target.targetKey) : undefined
return prior?.kind === 'present'
? { kind: 'replaceIfVersion', version: prior.version }
: { kind: 'createIfAbsent' }
}
/**
* Decide the edit version guard: unseen rejects with `FS_NOT_OBSERVED`,
* confirmed absence rejects with `FS_NOT_FOUND`, and presence supplies the
* observed version as the CAS basis.
*/
editIntent(target: FsTarget, actor: object | undefined): { version: FsVersion } {
const owner = this.owner(actor)
const prior = owner ? this.get(owner, target.targetKey) : undefined
if (!owner || prior === undefined) {
throw new FsError(`edit requires reading "${target.displayPath}" first`, 'FS_NOT_OBSERVED')
}
if (prior.kind === 'absent') {
throw new FsError(`cannot edit "${target.displayPath}": not found`, 'FS_NOT_FOUND')
}
return { version: prior.version }
}
/** Record an authoritative present or absent observation for this owner and target. */
observe(target: FsTarget, observation: FsObservation, actor: object | undefined): void {
const owner = this.owner(actor)
if (owner) this.set(owner, target.targetKey, observation)
}
}
/** Cordis plugin name used by loader diagnostics. */
export const name = 'fs-observation-policy'
/**View on GitHub (pinned to b150a551b8)
When it happens
Trigger: Thrown at packages/fs/fs-observation-policy/src/index.ts:82 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/9fdca61bacc036ce.
Report an issue: GitHub.