From b755ef15c1865cfbeb99f103de5d2b1b10a704b8 Mon Sep 17 00:00:00 2001 From: mertmit Date: Fri, 23 Jan 2026 15:25:31 +0300 Subject: [PATCH] fix: handle missing super user scenario Signed-off-by: mertmit --- .../migrations/v2/nc_098_default_workspace.ts | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/nocodb/src/meta/migrations/v2/nc_098_default_workspace.ts b/packages/nocodb/src/meta/migrations/v2/nc_098_default_workspace.ts index 7a5bd82c89..9efe3cf77c 100644 --- a/packages/nocodb/src/meta/migrations/v2/nc_098_default_workspace.ts +++ b/packages/nocodb/src/meta/migrations/v2/nc_098_default_workspace.ts @@ -30,7 +30,7 @@ const up = async (knex: Knex) => { } // find super user - const superUser = await knex(MetaTable.USERS) + let superUser = await knex(MetaTable.USERS) .where('roles', 'like', '%super%') .first(); @@ -43,9 +43,24 @@ const up = async (knex: Knex) => { if (!userCount || +userCount.count === 0) { return; } - throw new Error( - 'No super user found in the system, cannot create default workspace', - ); + + // Mark first created user on instance as super user + const firstUser = await knex(MetaTable.USERS) + .orderBy('created_at', 'asc') + .first(); + + if (!firstUser) + throw new Error( + 'No appropriate user found in the system, cannot create default workspace', + ); + + await knex(MetaTable.USERS) + .update({ + roles: 'org-level-creator,super', + }) + .where('id', firstUser.id); + + superUser = firstUser; } const defaultWorkspaceId = `w${nanoidWorkspace()}`;