plandex-ai/plandex · error
error getting org owner role id: %v
Error message
error getting org owner role id: %v
What it means
CreateOrg wraps a failure from GetOrgOwnerRoleId() into 'error getting org owner role id: %v'. The owner role row (in the roles/org_roles table) could not be read, so the owner membership row cannot be created.
Source
Thrown at app/server/db/org_helpers.go:118
AutoAddDomainUsers: req.AutoAddDomainUsers,
OwnerId: userId,
}
err := tx.QueryRow("INSERT INTO orgs (name, domain, auto_add_domain_users, owner_id, is_trial) VALUES ($1, $2, $3, $4, false) RETURNING id", req.Name, domain, req.AutoAddDomainUsers, userId).Scan(&org.Id)
if err != nil {
if IsNonUniqueErr(err) {
// Handle the uniqueness constraint violation
return nil, fmt.Errorf("an org with domain %s already exists", *domain)
}
return nil, fmt.Errorf("error creating org: %v", err)
}
orgOwnerRoleId, err := GetOrgOwnerRoleId()
if err != nil {
return nil, fmt.Errorf("error getting org owner role id: %v", err)
}
_, err = tx.Exec("INSERT INTO orgs_users (org_id, user_id, org_role_id) VALUES ($1, $2, $3)", org.Id, userId, orgOwnerRoleId)
if err != nil {
return nil, fmt.Errorf("error adding org membership: %v", err)
}
return org, nil
}
func GetOrgForDomain(domain string) (*Org, error) {
var org Org
query := fmt.Sprintf("SELECT %s FROM orgs WHERE domain = $1", orgFields)
err := Conn.Get(&org, query, domain)
if err != nil {
if err == sql.ErrNoRows {View on GitHub (pinned to e2d772072e)
Solutions
- Run/verify the seed migrations that insert the org owner role row
- Inspect GetOrgOwnerRoleId: log whether it returned sql.ErrNoRows (missing row) vs a connection error
- Query the roles table manually to confirm the owner role exists and its id
- Re-seed role data and retry org creation
Example fix
// before
orgOwnerRoleId, err := db.GetOrgOwnerRoleId()
if err != nil { return nil, err }
// after (seed check at startup)
if _, err := db.GetOrgOwnerRoleId(); err != nil {
log.Fatalf("org roles missing — run migrations/seeds: %v", err)
} Defensive patterns
Strategy: retry
Validate before calling
// Verify seed data at startup
if _, err := db.GetOrgOwnerRoleId(); err != nil {
log.Fatalf("org owner role missing: %v", err)
} Try / catch
org, err := db.CreateOrg(req, userId, &domain, tx)
if err != nil && strings.Contains(err.Error(), "owner role id") {
return fmt.Errorf("server misconfiguration: role seeds missing; run migrations")
} Prevention
- Run seed migrations as part of every deploy/startup
- Fail fast at boot if role lookups fail
- Add a healthcheck endpoint that fetches both owner and member role ids
- Version-control seed data alongside schema migrations
When it happens
Trigger: GetOrgOwnerRoleId returns sql.ErrNoRows because the org owner role seed row is missing, or the SELECT against the roles table fails due to connectivity or missing table.
Common situations: Fresh database where role-seed migrations never ran; migrations partially applied dropping/rename the roles table; DB outage mid-request.
Related errors
- error getting org member 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/5e7f5a6f87e8c02d.
Report an issue: GitHub.