{"record":{"id":"4d919c296e150a17","repo":"deepseek-ai/deepseek-harness","slug":"ralph-child-returned-no-structured-round-report","errorCode":null,"errorMessage":"Ralph child returned no structured round report","messagePattern":"Ralph child returned no structured round report","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/workflow/tool-ralph/src/index.ts","lineNumber":114,"sourceCode":"    evidence: { type: 'array', items: { type: 'string' } },\n    nextSteps: { type: 'array', items: { type: 'string' } },\n    blocker: { type: 'string' },\n  },\n  required: ['status', 'summary', 'evidence', 'nextSteps', 'blocker'],\n  additionalProperties: false,\n}\n\nfunction normalizedText(value) {\n  return typeof value === 'string' && value.length > 0 && value === value.trim()\n}\n\nfunction normalizedList(value) {\n  return Array.isArray(value) && value.every(normalizedText)\n}\n\nfunction validateReport(report) {\n  if (report === null || typeof report !== 'object' || Array.isArray(report)) {\n    throw new Error('Ralph child returned no structured round report')\n  }\n  if (!normalizedText(report.summary)) {\n    throw new Error('Ralph round report summary must be non-empty and normalized')\n  }\n  if (!normalizedList(report.evidence) || !normalizedList(report.nextSteps)) {\n    throw new Error('Ralph round report evidence and nextSteps must contain only non-empty normalized strings')\n  }\n  if (typeof report.blocker !== 'string' || report.blocker !== report.blocker.trim()) {\n    throw new Error('Ralph round report blocker must be a normalized string')\n  }\n  switch (report.status) {\n    case 'continue':\n      if (report.nextSteps.length === 0 || report.blocker !== '') {\n        throw new Error('a continuing Ralph report needs nextSteps and an empty blocker')\n      }\n      break\n    case 'complete':\n      if (report.evidence.length === 0 || report.nextSteps.length !== 0 || report.blocker !== '') {","sourceCodeStart":96,"sourceCodeEnd":132,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/workflow/tool-ralph/src/index.ts#L96-L132","documentation":"Error \"Ralph child returned no structured round report\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/workflow/tool-ralph/src/index.ts:114 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Make the child subagent emit the structured round report required by the Ralph schema (status, summary, evidence, nextSteps, blocker); verify the provider supports structured output and the prompt instructs the report format."],"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"}