pulumi/pulumi · error

%s is an individual account, not an organization.Organizatio

Error message

%s is an individual account, not an organization.Organization search is not supported for individual accounts

What it means

Pulumi AI natural-language search only supports organization scopes, not personal (individual) accounts. After resolving the effective org (default org, then --org, then the username as fallback), the command rejects the case where the effective org equals the username, since that means no real organization was selected.

Source

Thrown at pkg/cmd/pulumi/org/org_search_ai.go:84

	if !isCloud {
		return errors.New("Pulumi AI search is only supported for the Pulumi Cloud")
	}
	defaultOrg, err := cloudBackend.GetDefaultOrg(ctx)
	if err != nil {
		return err
	}
	userName, orgs, _, err := cloudBackend.CurrentUser()
	if err != nil {
		return err
	}
	if defaultOrg != "" && cmd.orgName == "" {
		cmd.orgName = defaultOrg
	}
	if cmd.orgName == "" {
		cmd.orgName = userName
	}
	if cmd.orgName == userName {
		return fmt.Errorf(
			"%s is an individual account, not an organization."+
				"Organization search is not supported for individual accounts",
			userName,
		)
	}
	if !slices.Contains(orgs, cmd.orgName) && cmd.orgName != "" {
		return fmt.Errorf("user %s is not a member of org %s", userName, cmd.orgName)
	}

	res, err := cloudBackend.NaturalLanguageSearch(ctx, cmd.orgName, cmd.queryString)
	if err != nil {
		return err
	}
	err = cmd.outputFormat.Get()(&cmd.searchCmd, res)
	if err != nil {
		// Stderr is not threaded through this helper; defer to process stderr.
		fmt.Fprintf(os.Stderr, "rendering error: %s\n", err) //nolint:forbidigo
	}

View on GitHub (pinned to 793f7b2e16)

Solutions

  1. Pass an explicit org you belong to: --org <organization-slug>
  2. Set a default organization with `pulumi org set default <org>`
  3. Create or join a Pulumi organization, since individual-account search is unsupported
  4. Use non-AI `pulumi org search` which supports the personal scope

Example fix

// before
pulumi org search ai -q "all ec2 instances"
// error: jane is an individual account, not an organization....
// after
pulumi org search ai --org acme -q "all ec2 instances"
Defensive patterns

Strategy: validation

Validate before calling

// resolve an org scope before invoking AI search
user, orgs, _, _ := cloudBackend.CurrentUser()
defaultOrg, _ := cloudBackend.GetDefaultOrg(ctx)
org := flagOrg
if org == "" { org = defaultOrg }
if org == "" || org == user {
    return errors.New("AI search needs an organization; pass --org or set a default org")
}

Try / catch

if err := runSearchAI(org, q); err != nil && strings.Contains(err.Error(), "individual account, not an organization") {
    return fmt.Errorf("usage: pulumi org search ai --org <organization-slug> -q %q", q)
}

Prevention

When it happens

Trigger: Running `pulumi org search ai -q "..."` without --org while the user has no default organization set (GetDefaultOrg returns empty), so cmd.orgName falls back to userName and the equality check `cmd.orgName == userName` fails.

Common situations: Individual Pulumi accounts with no org; users who never set a default org (`pulumi org set default`); running in a fresh environment where the account belongs to no organization.

Related errors


AI-assisted analysis of pulumi/pulumi@793f7b2e16 (2026-08-31). Data as JSON: /api/errors/d5f1e31ba8daf753. Report an issue: GitHub.