plandex-ai/plandex · error

error getting org member role id: %v

Error message

error getting org member role id: %v

What it means

AddOrgDomainUsers wraps a failure from GetOrgMemberRoleId() into 'error getting org member role id: %v'. The member role seed row could not be fetched, blocking creation of org_users rows for domain users.

Source

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

		}

		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)
		}

		// Join all value strings and execute a single query
		stmt := fmt.Sprintf("INSERT INTO orgs_users (org_id, user_id, org_role_id) VALUES %s ON CONFLICT ON CONSTRAINT org_user_unique DO NOTHING", strings.Join(valueStrings, ","))
		_, err = tx.Exec(stmt, valueArgs...)

		if err != nil {
			return fmt.Errorf("error adding org users: %v", err)

View on GitHub (pinned to e2d772072e)

Solutions

  1. Run the role-seed migrations to restore the org member role row
  2. Verify with a direct query that the member role exists in the roles table
  3. At startup, assert GetOrgMemberRoleId succeeds and fail fast with a clear message if not
  4. Retry the domain-add flow after reseeding

Example fix

// before
orgMemberRoleId, err := db.GetOrgMemberRoleId()
if err != nil { return err }
// after (startup check)
if _, err := db.GetOrgMemberRoleId(); err != nil {
    log.Fatalf("org member role missing — apply seed migrations: %v", err)
}
Defensive patterns

Strategy: retry

Validate before calling

// Startup guard
if _, err := db.GetOrgMemberRoleId(); err != nil {
    log.Fatalf("org member role seed missing: %v", err)
}

Try / catch

err := db.AddOrgDomainUsers(orgId, domain, tx)
if err != nil && strings.Contains(err.Error(), "member role id") {
    return fmt.Errorf("server misconfiguration: run role seed migrations")
}

Prevention

When it happens

Trigger: GetOrgMemberRoleId returns an error — typically sql.ErrNoRows because the member role row is absent from the roles table, or a connection/table error.

Common situations: Fresh or partially migrated database lacking role seed rows; a migration renamed or removed the default member role; DB connectivity blip.

Related errors


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