deepseek-ai/deepseek-harness · error · Error
Ralph workflow returned a malformed round report
Error message
Ralph workflow returned a malformed round report
What it means
Error "Ralph workflow returned a malformed round report" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/workflow/tool-ralph/src/index.ts:256
function normalizedText(value: unknown): value is string {
return typeof value === 'string' && value.length > 0 && value === value.trim()
}
function normalizedList(value: unknown): value is string[] {
return Array.isArray(value) && value.every(normalizedText)
}
/** Defensively decode the fixed script's report across a provider boundary. */
function readReport(value: unknown, expectedStatus: RalphRoundStatus, maxChars: number): RalphRoundReport {
if (!isRecord(value)
|| Object.keys(value).sort().join(',') !== 'blocker,evidence,nextSteps,status,summary'
|| value['status'] !== expectedStatus
|| !normalizedText(value['summary'])
|| !normalizedList(value['evidence'])
|| !normalizedList(value['nextSteps'])
|| typeof value['blocker'] !== 'string'
|| value['blocker'] !== value['blocker'].trim()) {
throw new Error('Ralph workflow returned a malformed round report')
}
const report: RalphRoundReport = {
status: expectedStatus,
summary: value['summary'],
evidence: value['evidence'],
nextSteps: value['nextSteps'],
blocker: value['blocker'],
}
if (expectedStatus === 'continue' && (report.nextSteps.length === 0 || report.blocker !== '')) {
throw new Error('Ralph workflow returned an invalid continuing report')
}
if (expectedStatus === 'complete'
&& (report.evidence.length === 0 || report.nextSteps.length !== 0 || report.blocker !== '')) {
throw new Error('Ralph workflow returned an invalid completion report')
}
if (expectedStatus === 'blocked' && !normalizedText(report.blocker)) {
throw new Error('Ralph workflow returned an invalid blocked report')
}View on GitHub (pinned to b150a551b8)
Solutions
- Fix the Ralph workflow provider so each round returns a report matching the round-report schema; inspect the malformed report in the session log.
When it happens
Trigger: Thrown at packages/workflow/tool-ralph/src/index.ts:256 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24).
Data as JSON: /api/errors/ad8149714d96b043.
Report an issue: GitHub.