deepseek-ai/deepseek-harness · error · LlmError
INVALID_REPLAY_STATE
INVALID_REPLAY_STATE
Error message
invalid pi-ai replay state: ${message} What it means
Error "invalid pi-ai replay state: ${message}" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/llm/llm-pi-ai/src/replay.ts:106
type: 'text',
...block.textSignature === undefined ? {} : { textSignature: block.textSignature },
}
case 'thinking': return {
type: 'reasoning',
...block.thinkingSignature === undefined ? {} : { thinkingSignature: block.thinkingSignature },
...block.redacted === undefined ? {} : { redacted: block.redacted },
}
case 'toolCall': return {
type: 'tool-call',
...block.thoughtSignature === undefined ? {} : { thoughtSignature: block.thoughtSignature },
}
}
}),
}
}
function invalidReplay(message: string): never {
throw new LlmError(`invalid pi-ai replay state: ${message}`, 'INVALID_REPLAY_STATE')
}
/** Validate the durable adapter-private envelope before it reaches pi-ai. */
function readReplayState(value: unknown): PiAiReplayState {
if (typeof value !== 'object' || value === null || Array.isArray(value)) return invalidReplay('expected a replay envelope')
const envelope = value as Record<string, unknown>
const rawResponse = envelope['response']
if (typeof rawResponse !== 'object' || rawResponse === null || Array.isArray(rawResponse)) return invalidReplay('expected a response object')
const response = rawResponse as Record<string, unknown>
if (response['kind'] !== 'pi-ai') return invalidReplay('unknown state kind')
if (response['version'] !== 2) return invalidReplay(`unsupported version ${String(response['version'])}`)
for (const key of ['api', 'provider', 'model'] as const) {
if (typeof response[key] !== 'string' || response[key].length === 0) return invalidReplay(`${key} must be a non-empty string`)
}
if (!['stop', 'length', 'toolUse', 'error', 'aborted'].includes(String(response['stopReason']))) {
return invalidReplay('unknown stopReason')
}
if (response['responseModel'] !== undefined && typeof response['responseModel'] !== 'string') return invalidReplay('responseModel must be a string')View on GitHub (pinned to b150a551b8)
Solutions
- Fix the replay state per the included message; regenerate or repair the corrupted session segment.
When it happens
Trigger: Thrown at packages/llm/llm-pi-ai/src/replay.ts:106 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/898edeb87f039f82.
Report an issue: GitHub.