deepseek-ai/deepseek-harness · error · Error
Ralph round report exceeds maxHandoffChars (${serialized.len
Error message
Ralph round report exceeds maxHandoffChars (${serialized.length} > ${args.maxHandoffChars}) What it means
Error "Ralph round report exceeds maxHandoffChars (${serialized.length} > ${args.maxHandoffChars})" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/workflow/tool-ralph/src/index.ts:146
throw new Error('a continuing Ralph report needs nextSteps and an empty blocker')
}
break
case 'complete':
if (report.evidence.length === 0 || report.nextSteps.length !== 0 || report.blocker !== '') {
throw new Error('a complete Ralph report needs evidence, no nextSteps, and an empty blocker')
}
break
case 'blocked':
if (!normalizedText(report.blocker)) {
throw new Error('a blocked Ralph report needs a concrete blocker')
}
break
default:
throw new Error('Ralph round report status is invalid')
}
const serialized = JSON.stringify(report)
if (serialized.length > args.maxHandoffChars) {
throw new Error('Ralph round report exceeds maxHandoffChars (' + serialized.length + ' > ' + args.maxHandoffChars + ')')
}
return report
}
let previous
phase('Fresh-agent rounds')
for (let round = 1; round <= args.maxRounds; round += 1) {
const prior = previous === undefined ? '(none — this is the first round)' : JSON.stringify(previous)
const prompt = [
'You are one fresh worker in a foreground Ralph loop. You receive no parent conversation and no prior child session. Do not call the ralph tool: this round already is its worker.',
'Immutable objective:\n' + args.objective,
'Ralph round: ' + round + ' of ' + args.maxRounds + '.',
'The shared workspace and its current working tree are the long-term memory and source of truth. Inspect them before acting, preserve existing work, perform concrete in-scope work, and verify what you change. Treat the previous report only as a bounded handoff; confirm it against the workspace.',
'Previous structured handoff:\n' + prior,
'Return one report with exact normalized strings. Use status continue with at least one nextSteps entry while useful work remains; complete only with concrete evidence and no nextSteps; blocked only when no meaningful progress is possible without human input or an external-state change. blocker must be empty unless blocked.',
].join('\n\n')
const rawReport = await agent(prompt, {
label: 'Ralph round ' + round,View on GitHub (pinned to b150a551b8)
Solutions
- Shorten the round report below maxHandoffChars, or raise maxHandoffChars in the Ralph tool configuration if larger handoffs are intended.
When it happens
Trigger: Thrown at packages/workflow/tool-ralph/src/index.ts:146 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/28eeb60e5d9af449.
Report an issue: GitHub.