gastownhall/beads · error

--team requires interactive prompts and cannot be used with

Error message

--team requires interactive prompts and cannot be used with --non-interactive

What it means

Mirror of error 838 for the team wizard: --team starts an interactive prompt flow that cannot run with --non-interactive, so init fails fast with this message.

Source

Thrown at cmd/bd/init.go:583

		// This must be computed before any interactive prompts.
		nonInteractive := isNonInteractiveInit(nonInteractiveFlag)

		// Validate --role flag value
		if roleFlag != "" {
			switch roleFlag {
			case "maintainer", "contributor":
				// valid
			default:
				return fmt.Errorf("invalid --role %q: must be \"maintainer\" or \"contributor\"", roleFlag)
			}
		}

		// Fail-fast: contributor/team wizards require interaction
		if nonInteractive && contributor {
			return fmt.Errorf("--contributor requires interactive prompts and cannot be used with --non-interactive")
		}
		if nonInteractive && team {
			return fmt.Errorf("--team requires interactive prompts and cannot be used with --non-interactive")
		}

		// Dolt is the only supported backend.
		backend := configfile.BackendDolt

		// Also treat BEADS_DOLT_SERVER_MODE=1 env var as --server.
		if os.Getenv("BEADS_DOLT_SERVER_MODE") == "1" {
			initServerMode = true
		}

		// Shared server mode still uses a Dolt sql-server, so it must select
		// the server-backed store path during init. Without this, init can
		// persist shared-server intent in YAML while still creating an embedded
		// store and recording dolt_mode=embedded in metadata.json (GH#2946).
		if sharedServer || strings.EqualFold(os.Getenv("BEADS_DOLT_SHARED_SERVER"), "true") || os.Getenv("BEADS_DOLT_SHARED_SERVER") == "1" {
			initServerMode = true
		}

View on GitHub (pinned to 71377f2769)

Solutions

  1. Run `bd init --team` interactively without --non-interactive
  2. For automation, use explicit non-wizard flags instead of the team wizard
  3. Clear non-interactive env vars (or run in a real TTY) so terminal detection does not force non-interactive mode

Example fix

// before
bd init --team --non-interactive
// after
bd init --team   # run interactively
Defensive patterns

Strategy: validation

Validate before calling

if team && nonInteractive {
    return fmt.Errorf("--team requires an interactive terminal; drop --non-interactive")
}

Try / catch

if err := bdInit("--team", "--non-interactive"); err != nil {
    if strings.Contains(err.Error(), "requires interactive prompts") {
        // rerun interactively or use non-wizard flags
    }
}

Prevention

When it happens

Trigger: `bd init --team --non-interactive` (or --non-interactive implied by env var / terminal detection per isNonInteractiveInit) together with --team.

Common situations: Scripted team/workspace setup in CI; running bd init under automation wrappers that strip TTYs; combining --team with a non-interactive env var set for other beads commands.

Related errors


AI-assisted analysis of gastownhall/beads@71377f2769 (2026-08-30). Data as JSON: /api/errors/123736a728aa2a8c. Report an issue: GitHub.