{"record":{"id":"fcfe2511e7f48f61","repo":"eyaltoledano/claude-task-master","slug":"task-generation-is-still-in-progress","errorCode":null,"errorMessage":"Task generation is still in progress","messagePattern":"Task generation is still in progress","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"scripts/modules/commands.js","lineNumber":655,"sourceCode":"\t\t\t\t\tif (status.status === 'ready' || status.status === 'completed') {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (status.status === 'failed') {\n\t\t\t\t\t\tspinner.fail('Task generation failed');\n\t\t\t\t\t\tconst errorMsg =\n\t\t\t\t\t\t\tstatus.error || 'Task generation failed on Hamster.';\n\t\t\t\t\t\tconsole.error(chalk.red(`\\n  ${errorMsg}\\n`));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// Continue polling on error\n\t\t\t}\n\t\t}\n\n\t\t// Check if we timed out while still generating\n\t\tif (isStillGenerating(briefStatus)) {\n\t\t\tspinner.warn('Task generation is still in progress');\n\t\t\tconsole.log('');\n\t\t\tconsole.log(\n\t\t\t\tchalk.yellow('  Tasks are still being generated in the background.')\n\t\t\t);\n\t\t\tconsole.log(chalk.white('  Check the brief URL above for progress.'));\n\t\t} else {\n\t\t\tspinner.succeed(\n\t\t\t\ttaskCount > 0\n\t\t\t\t\t? `Done! ${taskCount} tasks generated`\n\t\t\t\t\t: 'Task generation complete'\n\t\t\t);\n\t\t}\n\t\tconsole.log('');\n\n\t\t// Show invite URL for adding more teammates later (orgSlug already extracted above)\n\t\tif (orgSlug) {\n\t\t\tconst urlParts = result.brief.url.match(/^(https?:\\/\\/[^/]+)/);\n\t\t\tconst baseUrl = urlParts ? urlParts[1] : '';","sourceCodeStart":637,"sourceCodeEnd":673,"githubUrl":"https://github.com/eyaltoledano/claude-task-master/blob/c0c98d367c55296bfe69e65680625b6db437af02/scripts/modules/commands.js#L637-L673","documentation":"scripts/modules/commands.js handleParsePrdToHamster() polls a brief's generation status after submitting a PRD. If polling ends (e.g. timeout) while the brief is still generating, it warns that generation is in progress rather than erroring, and points the user to the brief URL to check progress later.","triggerScenarios":"handleParsePrdToHamster() exhausts its polling loop while isStillGenerating(briefStatus) is true — the remote generation job takes longer than the polling window.","commonSituations":"Very large PRDs that take minutes to generate, slow or busy API backend, short polling timeout configured locally, unstable network prolonging the wait.","solutions":["Wait and check the printed brief URL to see the finished tasks once generation completes","Re-run the command later if the brief appears stuck; it should reflect completed generation","Increase the polling timeout/duration if the CLI supports it for large PRDs","Contact API support / check status page if generation never completes"],"exampleFix":"// before\ntm parse-prd --prd big.prd  # times out polling\n// after\ntm parse-prd --prd big.prd --timeout 600  # allow more polling time","handlingStrategy":"retry","validationCode":"const status = await client.getBriefStatus(briefId);\nif (isStillGenerating(status)) console.log(`Brief ${briefId} still generating (${status.progress ?? 'unknown'}%) — poll again later`);","typeGuard":null,"tryCatchPattern":"let done = false;\nfor (let i = 0; i < MAX_POLLS && !done; i++) {\n  const s = await client.getBriefStatus(briefId);\n  done = !isStillGenerating(s);\n  if (!done) await sleep(POLL_INTERVAL);\n}\nif (!done) console.warn(`Still generating; check brief URL ${briefUrl} later`);","preventionTips":["Set polling timeouts generously for large PRDs","Persist the brief URL so you can check progress after a timeout","Alert on briefs stuck generating beyond an SLA","Check API status/limits when generation repeatedly exceeds the window"],"tags":["prd","async-generation","polling-timeout"],"backgroundTag":"async-job-still-running","analyzedSha":"c0c98d367c55296bfe69e65680625b6db437af02","analyzedAt":"2026-08-29T02:56:26.071Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}