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

  1. Wait and check the printed brief URL to see the finished tasks once generation completes
  2. Re-run the command later if the brief appears stuck; it should reflect completed generation
  3. Increase the polling timeout/duration if the CLI supports it for large PRDs
  4. 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

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.