eyaltoledano/claude-task-master · warning
Task generation is still in progress
Error message
Task generation is still in progress
What it means
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.
Source
Thrown at scripts/modules/commands.js:655
if (status.status === 'ready' || status.status === 'completed') {
break;
}
if (status.status === 'failed') {
spinner.fail('Task generation failed');
const errorMsg =
status.error || 'Task generation failed on Hamster.';
console.error(chalk.red(`\n ${errorMsg}\n`));
return;
}
}
} catch {
// Continue polling on error
}
}
// Check if we timed out while still generating
if (isStillGenerating(briefStatus)) {
spinner.warn('Task generation is still in progress');
console.log('');
console.log(
chalk.yellow(' Tasks are still being generated in the background.')
);
console.log(chalk.white(' Check the brief URL above for progress.'));
} else {
spinner.succeed(
taskCount > 0
? `Done! ${taskCount} tasks generated`
: 'Task generation complete'
);
}
console.log('');
// Show invite URL for adding more teammates later (orgSlug already extracted above)
if (orgSlug) {
const urlParts = result.brief.url.match(/^(https?:\/\/[^/]+)/);
const baseUrl = urlParts ? urlParts[1] : '';View on GitHub (pinned to c0c98d367c)
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
Example fix
// before tm parse-prd --prd big.prd # times out polling // after tm parse-prd --prd big.prd --timeout 600 # allow more polling time
Defensive patterns
Strategy: retry
Validate before calling
const status = await client.getBriefStatus(briefId);
if (isStillGenerating(status)) console.log(`Brief ${briefId} still generating (${status.progress ?? 'unknown'}%) — poll again later`); Try / catch
let done = false;
for (let i = 0; i < MAX_POLLS && !done; i++) {
const s = await client.getBriefStatus(briefId);
done = !isStillGenerating(s);
if (!done) await sleep(POLL_INTERVAL);
}
if (!done) console.warn(`Still generating; check brief URL ${briefUrl} later`); Prevention
- 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
When it happens
Trigger: handleParsePrdToHamster() exhausts its polling loop while isStillGenerating(briefStatus) is true — the remote generation job takes longer than the polling window.
Common situations: Very large PRDs that take minutes to generate, slow or busy API backend, short polling timeout configured locally, unstable network prolonging the wait.
Related errors
AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29).
Data as JSON: /api/errors/fcfe2511e7f48f61.
Report an issue: GitHub.