plandex-ai/plandex · error

%v

Error message

%v

What it means

Piped-data and note contexts get an LLM-generated name in goroutines whose results are collected over errCh. Any error from GenPipedDataName/GenNoteName — including a recovered panic with a stack trace — is surfaced verbatim as an HTTP 500 with the message being just err.Error() (hence the generic "%v").

Source

Thrown at app/server/handlers/context_helper.go:208

				name, err := model.GenNoteName(r.Context(), auth, plan, settings, orgUserConfig, clients, authVars, context.Body, context.SessionId)

				if err != nil {
					errCh <- fmt.Errorf("error generating name for note: %v", err)
					return
				}

				context.Name = name
				errCh <- nil
			}(context)
		}
	}
	if num > 0 {
		for i := 0; i < num; i++ {
			err := <-errCh
			if err != nil {
				log.Printf("Error: %v\n", err)
				http.Error(w, err.Error(), http.StatusInternalServerError)
				return nil, nil
			}
		}
	}

	ctx, cancel := context.WithCancel(r.Context())

	var loadRes *shared.LoadContextResponse
	var dbContexts []*db.Context

	err = db.ExecRepoOperation(db.ExecRepoOperationParams{
		OrgId:          auth.OrgId,
		UserId:         auth.User.Id,
		PlanId:         plan.Id,
		Branch:         branchName,
		Reason:         "load contexts",
		Scope:          db.LockScopeWrite,
		Ctx:            ctx,

View on GitHub (pinned to e2d772072e)

Solutions

  1. Read the server log line starting with 'Error:' for the full underlying cause (API error or panic stack)
  2. Verify LLM API keys/org auth vars configured for the plan are valid and have quota
  3. Retry the load after provider recovery if it was a transient 5xx/429
  4. Trim oversized piped content; report the panic to Plandex if it's a framework bug
Defensive patterns

Strategy: try-catch

Validate before calling

if len(pipedBody) > 100_000 {
    return fmt.Errorf("piped content too large for auto-naming; provide a name explicitly")
}

Try / catch

resp, err := doLoad(req)
if err != nil && strings.HasPrefix(err.Error(), "error generating name for") {
    // LLM naming call failed: check API keys/quota, retry with backoff
    return retryWithBackoff(doLoad)
}

Prevention

When it happens

Trigger: GenPipedDataName or GenNoteName fails (LLM API error, auth/invalid API key, rate limit, timeout, cancelled request) or panics inside the naming goroutine while loading piped data or notes.

Common situations: Expired/invalid LLM API keys; provider outages or 429s; very long piped content blowing the naming model's context; nil-pointer panic in a custom model integration.

Related errors


AI-assisted analysis of plandex-ai/plandex@e2d772072e (2026-09-05). Data as JSON: /api/errors/b17994e181bccfe0. Report an issue: GitHub.