JuliusBrussee/caveman · error
postgres: expected runtime role is required
Error message
postgres: expected runtime role is required
What it means
Error "postgres: expected runtime role is required" thrown in JuliusBrussee/caveman.
Source
Thrown at shared/platform/postgresconfig/postgresconfig.go:140
return nil, err
}
if err := ValidateRuntimeIdentity(ctx, pool, expectedRole); err != nil {
pool.Close()
return nil, err
}
if err := ValidateTenantSchema(ctx, pool); err != nil {
pool.Close()
return nil, err
}
return pool, nil
}
// ValidateRuntimeIdentity rejects database identities that can bypass RLS or
// do not inherit the service's audited privilege group.
func ValidateRuntimeIdentity(ctx context.Context, pool *pgxpool.Pool, expectedRole string) error {
expectedRole = strings.TrimSpace(expectedRole)
if expectedRole == "" {
return errors.New("postgres: expected runtime role is required")
}
var currentUser, sessionUser string
var superuser, bypassRLS, member, ownsTenantTable bool
err := pool.QueryRow(ctx, `
SELECT current_user,
session_user,
r.rolsuper,
r.rolbypassrls,
pg_has_role(current_user, $1, 'MEMBER'),
EXISTS (
SELECT 1
FROM pg_class c
JOIN pg_namespace n ON n.oid=c.relnamespace
JOIN information_schema.columns col
ON col.table_schema=n.nspname
AND col.table_name=c.relname
AND col.column_name='organization_id'
WHERE n.nspname='public'View on GitHub (pinned to 27d5a3981a)
Solutions
- Set the expected runtime role.
When it happens
Trigger: Thrown at shared/platform/postgresconfig/postgresconfig.go:140 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15).
Data as JSON: /api/errors/9838c9e72abcf245.
Report an issue: GitHub.