plandex-ai/plandex · error

error prompting name: %v

Error message

error prompting name: %v

What it means

createAccount prompts for the user's display name via term.GetUserStringInput when not in local mode; if that prompt fails it returns "error prompting name: %v". This is an interactive-input failure before any account is created.

Source

Thrown at app/cli/auth/account.go:306

	}

	fmt.Printf("✅ Signed in as %s | Org: %s\n", color.New(color.Bold, term.ColorHiGreen).Sprintf("<%s> %s", Current.UserName, Current.Email), color.New(term.ColorHiCyan).Sprint(Current.OrgName))
	fmt.Println()

	return nil
}

func createAccount(email, pin, host string, isLocalMode bool) error {
	var name string

	if isLocalMode {
		name = "Local Admin"
	} else {
		var err error
		name, err = term.GetUserStringInput("Your name:")

		if err != nil {
			return fmt.Errorf("error prompting name: %v", err)
		}
	}

	term.StartSpinner("🌟 Creating account...")
	res, apiErr := apiClient.CreateAccount(shared.CreateAccountRequest{
		Email:    email,
		UserName: name,
		Pin:      pin,
	}, host)
	term.StopSpinner()

	if apiErr != nil {
		return fmt.Errorf("error creating account: %v", apiErr.Msg)
	}

	if res.IsLocalMode {
		isLocalMode = true
	}

View on GitHub (pinned to e2d772072e)

Solutions

  1. Run the signup command in an interactive terminal.
  2. Avoid piping stdin (e.g. `echo x | myapp auth signup`).
  3. Use local mode, which skips the prompt by setting name to "Local Admin".
  4. Re-run the command and provide a name when prompted.

Example fix

// before
echo "" | myapp auth signup   # EOF on name prompt
// after
myapp auth signup             # interactive TTY, type the name when asked
Defensive patterns

Strategy: validation

Validate before calling

stat, _ := os.Stdin.Stat()
if (stat.Mode() & os.ModeCharDevice) == 0 {
    return fmt.Errorf("stdin is not a TTY; run auth signup interactively")
}

Try / catch

if err := createAccount(email, pin, host, false); err != nil {
    if strings.Contains(err.Error(), "error prompting name") {
        fmt.Fprintln(os.Stderr, "Name prompt failed (no interactive terminal?). Run in a TTY or use local mode:", err)
    }
    return err
}

Prevention

When it happens

Trigger: term.GetUserStringInput("Your name:") returns an error — stdin closed/EOF, non-interactive terminal, or the user aborting the prompt.

Common situations: Running `auth signup` piped/redirected (no TTY), in CI, or the user pressing Ctrl+C/Ctrl+D at the name prompt.

Related errors


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