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
- Run the role-seed migrations to restore the org member role row
- Verify with a direct query that the member role exists in the roles table
- At startup, assert GetOrgMemberRoleId succeeds and fail fast with a clear message if not
- 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
- Seed role rows in every environment (dev/staging/prod)
- Fail fast at boot when role lookups fail
- Track seeds in migrations, not manual SQL
- Add a smoke test that creates an org and adds a domain user
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
- error getting org owner role id: %v
- Error getting org owner role id: {err.Error()}
- error invalidating conflicted results: %v
- error adding plan context tokens: %v
- error adding convo tokens: %v
AI-assisted analysis of plandex-ai/plandex@e2d772072e (2026-09-05).
Data as JSON: /api/errors/e7719d8aeb4bbba5.
Report an issue: GitHub.