plandex-ai/plandex · error

No namePipedData function call found in response. The model

Error message

No namePipedData function call found in response. The model failed to generate a valid response.

What it means

GenPipedDataName, in the non-XML (function-call/JSON) path, expects the model response to contain a namePipedData function call whose content is a PipedDataNameRes JSON payload. When the response Content is empty (no function call made), this error is returned. The model failed to produce the structured name response at all.

Source

Thrown at app/server/model/name.go:212

	})

	if err != nil {
		fmt.Printf("Error during piped data name model call: %v\n", err)
		return "", err
	}

	var name string
	content := modelRes.Content

	if baseModelConfig.PreferredOutputFormat == shared.ModelOutputFormatXml {
		name = utils.GetXMLContent(content, "name")
		if name == "" {
			return "", fmt.Errorf("No name tag found in XML response")
		}
	} else {
		if content == "" {
			fmt.Println("no namePipedData function call found in response")
			return "", fmt.Errorf("No namePipedData function call found in response. The model failed to generate a valid response.")
		}

		var nameRes prompts.PipedDataNameRes
		err = json.Unmarshal([]byte(content), &nameRes)
		if err != nil {
			fmt.Printf("Error unmarshalling piped data name response: %v\n", err)
			return "", err
		}
		name = nameRes.Name
	}

	return name, nil
}

func GenNoteName(
	ctx context.Context,
	auth *types.ServerAuth,
	plan *db.Plan,

View on GitHub (pinned to e2d772072e)

Solutions

  1. Retry the request; failures are often stochastic.
  2. Force tool_choice to namePipedData in the model request.
  3. Confirm the tools array registers namePipedData with the expected schema.
  4. Increase max_tokens and re-check the prompt instructs tool use.
  5. Use a model with stronger tool-calling reliability.

Example fix

// before
modelReq{Prompt: prompt}
// after
modelReq{Prompt: prompt, ToolChoice: {Type: "function", Function: {Name: "namePipedData"}}}
Defensive patterns

Strategy: try-catch

Type guard

func hasContent(res *shared.ModelRes) bool { return res != nil && res.Content != "" }

Try / catch

name, err := model.GenPipedDataName(ctx, req)
if err != nil {
    if strings.Contains(err.Error(), "No namePipedData function call found") {
        name, err = model.GenPipedDataName(ctx, req) // single retry
    }
    if err != nil { return fmt.Errorf("piped data naming failed: %w", err) }
}

Prevention

When it happens

Trigger: PreferredOutputFormat != XML and the LLM reply contains no namePipedData function call: model answers in plain text, refuses, or the tools config omitted/misnamed the function.

Common situations: Provider updates changing tool_call serialization, models without reliable function calling, prompts asking for a direct answer instead of the tool call, or truncated responses from low max_tokens.

Related errors


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