plandex-ai/plandex · error

error getting users for domain: %v

Error message

error getting users for domain: %v

What it means

AddOrgDomainUsers wraps a failure from GetUsersForDomain(domain) into 'error getting users for domain: %v'. The lookup of users whose email matches the org domain failed, so domain-based auto-add cannot proceed.

Source

Thrown at app/server/db/org_helpers.go:150

	query := fmt.Sprintf("SELECT %s FROM orgs WHERE domain = $1", orgFields)
	err := Conn.Get(&org, query, domain)

	if err != nil {
		if err == sql.ErrNoRows {
			return nil, nil
		}

		return nil, fmt.Errorf("error getting org for domain: %v", err)
	}

	return &org, nil
}

func AddOrgDomainUsers(orgId, domain string, tx *sqlx.Tx) error {
	usersForDomain, err := GetUsersForDomain(domain)

	if err != nil {
		return fmt.Errorf("error getting users for domain: %v", err)
	}

	orgMemberRoleId, err := GetOrgMemberRoleId()

	if err != nil {
		return fmt.Errorf("error getting org member role id: %v", err)
	}

	if len(usersForDomain) > 0 {
		// create org users for each user
		var valueStrings []string
		var valueArgs []interface{}
		for i, user := range usersForDomain {
			num := i * 3
			valueStrings = append(valueStrings, fmt.Sprintf("($%d, $%d, $%d)", num+1, num+2, num+3))
			valueArgs = append(valueArgs, orgId, user.Id, orgMemberRoleId)
		}

View on GitHub (pinned to e2d772072e)

Solutions

  1. Check the wrapped %v message for the underlying pq error (connectivity vs syntax vs missing table)
  2. Validate the domain string (non-empty, valid hostname) before org creation / auto-add
  3. Ensure the users schema matches via migrations
  4. Retry once the database is reachable

Example fix

// before
domain := "" // empty domain from request
err := db.AddOrgDomainUsers(orgId, domain, tx)
// after
if domain == "" || !strings.Contains(domain, ".") {
    return errors.New("invalid org domain for auto-add")
}
err := db.AddOrgDomainUsers(orgId, domain, tx)
Defensive patterns

Strategy: validation

Validate before calling

if domain == "" || strings.Contains(domain, "@") || !strings.Contains(domain, ".") {
    return errors.New("invalid domain")
}

Try / catch

err := db.AddOrgDomainUsers(orgId, domain, tx)
if err != nil && strings.Contains(err.Error(), "error getting users for domain") {
    log.Printf("domain user lookup failed: %v", err)
    return fmt.Errorf("domain lookup unavailable")
}

Prevention

When it happens

Trigger: GetUsersForDomain's SELECT over users fails: DB connection issue, users table missing, or an invalid domain value causing a query error.

Common situations: Auto-add-domain-users org created with a malformed/empty domain; DB outage; migrations not applied so the users table or email column differs.

Understand the failure class

Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.

Related errors


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