vxcontrol/pentagi · warning
failed to get active subtask description: %w
Error message
failed to get active subtask description: %w
What it means
Thrown in buildSummary (backend/pkg/tools/flow_manager.go:143) when rendering the active subtask's Description in verbose mode. The description goes through t.getDescriptionText, which calls the LLM summarizer when the description exceeds 2*descriptionLimit (8 KB); this error wraps that summarizer failure. The DB row itself was read fine — only the description compression step failed.
Source
Thrown at backend/pkg/tools/flow_manager.go:143
fmt.Fprintf(sb, "Subtasks — total: %d, running: %d, waiting: %d, finished: %d, failed: %d, planned: %d\n",
len(subtasks), stCounts["running"], stCounts["waiting"], stCounts["finished"], stCounts["failed"], stCounts["created"])
if activeTask != nil {
fmt.Fprintf(sb, "\nActive task: ID=%-6d | %-8s | %s\n", activeTask.ID, activeTask.Status, activeTask.Title)
if verbose && activeTask.Input != "" {
input, err := t.getInputText(ctx, activeTask.Input)
if err != nil {
return "", fmt.Errorf("failed to get active task input: %w", err)
}
fmt.Fprintf(sb, " Input: %s\n", input)
}
}
if activeST != nil {
fmt.Fprintf(sb, "Active subtask: ID=%-6d | %-8s | %s\n", activeST.ID, activeST.Status, activeST.Title)
if verbose && activeST.Description != "" {
description, err := t.getDescriptionText(ctx, activeST.Description)
if err != nil {
return "", fmt.Errorf("failed to get active subtask description: %w", err)
}
fmt.Fprintf(sb, " Description: %s\n", description)
}
}
if len(tasks) == 0 {
fmt.Fprintf(sb, "\nNo tasks yet. Flow is waiting for first input.\n")
}
summary := sb.String()
if t.summarizer != nil && len(summary) > summaryLimit {
summary, err = t.summarizer(ctx, truncateText(summary, summarizationLimit))
if err != nil {
return "", fmt.Errorf("failed to summarize summary: %w", err)
}
}
return summary, nilView on GitHub (pinned to ea665308ba)
Solutions
- Check the underlying summarizer error and provider health (API key, quota, endpoint) in the observability logs.
- Retry the call, or use verbose=false so only title/status are printed without description summarization.
- Trim subtask descriptions (patch_flow_subtasks) so they stay under 8 KB and bypass the summarizer.
- Set the summarizer to nil / fix its config to fall back to truncateText truncation instead of LLM summarization.
Example fix
// before
description, err := t.getDescriptionText(ctx, activeST.Description)
if err != nil {
return "", fmt.Errorf("failed to get active subtask description: %w", err)
}
// after: fall back to raw truncation
rendered, err := t.getDescriptionText(ctx, activeST.Description)
if err != nil {
rendered = truncateText(activeST.Description, descriptionLimit)
}
description = rendered Defensive patterns
Strategy: fallback
Validate before calling
// avoid the summarizer path when the description is small enough
if len(subtaskDescription) <= 2*descriptionLimit {
verbose = true // safe: only local truncation happens
} else if summarizerUnavailable(ctx) {
verbose = false
} Try / catch
// Go: fall back to non-verbose summary on this error
out, err := tool.Handle(ctx, "get_flow_status", verboseSummaryArgs)
if err != nil && strings.Contains(err.Error(), "failed to get active subtask description") {
out, err = tool.Handle(ctx, "get_flow_status", summaryArgs)
} Prevention
- Keep subtask descriptions concise (<8 KB) when planning via patch_flow_subtasks.
- Monitor summarizer provider availability (health probe / rate-limit budget).
- Retry the tool call on transient LLM errors instead of aborting the agent chain.
- Prefer verbose=false when only task/subtask status is needed.
When it happens
Trigger: get_flow_status with detail='summary' and verbose=true while a subtask is running/waiting, its Description exceeds 8 KB, and the t.summarizer callback errors (provider outage, auth failure, rate limit, context cancellation).
Common situations: Expired or missing LLM API key for the configured summarizer provider; provider 429 rate limiting during parallel agent activity; long attacker-style subtask descriptions generated by the Developer agent exceeding the summarization threshold; local Ollama server stopped.
Related errors
- failed to get active task input: %w
- failed to summarize summary: %w
- failed to get task input: %w
- failed to get task result: %w
- failed to summarize task list: %w
AI-assisted analysis of vxcontrol/pentagi@ea665308ba (2026-09-01).
Data as JSON: /api/errors/392c048a26b4e8a1.
Report an issue: GitHub.