plandex-ai/plandex · error

error prompting email: %v

Error message

error prompting email: %v

What it means

promptSignInNewAccount wraps a failure from term.GetRequiredUserStringInput for the email prompt as 'error prompting email: %v'. It occurs only on the 'Another host' path (local mode hardcodes local-admin@plandex.ai). This is a client-side input failure, not an API error.

Source

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

	if selected == SignInLocalOption {
		host, err = term.GetRequiredUserStringInputWithDefault("Host:", "http://localhost:8099")
	} else {
		host, err = term.GetRequiredUserStringInput("Host:")
	}

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

	if selected == SignInLocalOption {
		email = "local-admin@plandex.ai"
	} else {
		email, err = term.GetRequiredUserStringInput("Your email:")
	}

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

	res, err := verifyEmail(email, host)

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

	if res.hasAccount {
		err := signIn(email, res.pin, host)
		if err != nil {
			return fmt.Errorf("error signing in: %v", err)
		}
	} else {
		err := createAccount(email, res.pin, host, res.isLocalMode)
		if err != nil {
			return fmt.Errorf("error creating account: %v", err)
		}

View on GitHub (pinned to e2d772072e)

Solutions

  1. Type a valid email address at the 'Your email:' prompt instead of submitting empty input.
  2. Run the command in an interactive terminal.
  3. If you intended local mode, select 'Local mode host' — the email is then set automatically.
  4. Abort and re-run to restart the sign-in flow cleanly if the prompt state is stuck.

Example fix

// before
Your email: (empty)
// after
Your email: user@example.com
Defensive patterns

Strategy: validation

Validate before calling

// validate email format before the flow so the required-input prompt is answered correctly
email := "user@example.com"
if !strings.Contains(email, "@") || strings.TrimSpace(email) == "" {
    return fmt.Errorf("invalid email %q", email)
}

Try / catch

email, err := term.GetRequiredUserStringInput("Your email:")
if err != nil {
    return fmt.Errorf("email prompt failed (%v); choose 'Local mode host' to skip the email prompt", err)
}

Prevention

When it happens

Trigger: term.GetRequiredUserStringInput("Your email:") returns an error: empty input on a required prompt, stdin not interactive, or the user cancels the prompt.

Common situations: Non-interactive shells/CI without a TTY; user presses Enter without typing an email; prompt aborted with Ctrl-C.

Related errors


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