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

  1. 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.