Pangctl and API trouble #1062

Closed
opened 2026-04-05 18:11:55 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @jackrosenberg on 8/16/2025

I am in the proccess of making an automated test for pangolin (NixOS) and am running into some trouble.

pangctl set-admin-credentials --email "admin@example.test" --password "Password123!"
results in:

VPS # [    7.669059] pangolin[886]: Running migrations...
VPS # [    7.719349] pangolin[886]: Migrations completed successfully.
VPS # Failed to set admin credentials SqliteError: no such table: user
VPS #     at Database.prepare (...-pangolin-1.8.0/share/pangolin/node_modules/better-sqlite3/lib/methods/wrappers.js:5:21)
VPS #     at BetterSQLiteSession.prepareQuery (...pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/better-sqlite3/session.js:23:30)
VPS #     at BetterSQLiteSession.prepareOneTimeQuery (file:///nix/store/kqsg160ml3w59fka2q4b1l95gzyicc1w-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/sqlite-core/session.js:142:17)
VPS #     at SQLiteSelectBase._prepare (...-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/sqlite-core/query-builders/select.js:615:88)
VPS #     at SQLiteSelectBase.all (...-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/sqlite-core/query-builders/select.js:641:17)
VPS #     at SQLiteSelectBase.execute (...-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/sqlite-core/query-builders/select.js:650:17)
VPS #     at SQLiteSelectBase.then (...-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/query-promise.js:21:17) {
VPS #   code: 'SQLITE_ERROR'
VPS # }
VPS # Error: TransactionRollbackError [DrizzleError]: Rollback
VPS #     at BetterSQLiteTransaction.rollback (...-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/sqlite-core/session.js:198:11)
VPS #     at Function.<anonymous> (...-pangolin-1.8.0/share/pangolin/dist/cli.mjs:17:1220)
VPS #     at async Object.handler (...-pangolin-1.8.0/share/pangolin/dist/cli.mjs:17:518) {
VPS #   cause: undefined
VPS # }

Which seems pretty clear, user does not exist. However, running sqlite3 /var/lib/pangolin/config/db/db.sqlite .tables gives:

__drizzle_migrations    newtSession             session               
actions                 olms                    sites                 
apiKeyActions           orgDomains              supporterKey          
apiKeyOrg               orgs                    targets               
apiKeys                 passwordResetTokens     twoFactorBackupCodes  
clientSession           resourceAccessToken     user         <---         
clientSites             resourceOtp             userActions           
clients                 resourcePassword        userClients           
domains                 resourcePincode         userDomains           
emailVerificationCodes  resourceRules           userInvites           
exitNodes               resourceSessions        userOrgs              
hostMeta                resourceWhitelist       userResources         
idp                     resources               userSites             
idpOidcConfig           roleActions             versionMigrations     
idpOrg                  roleClients             webauthnChallenge     
licenseKey              roleResources           webauthnCredentials   
limits                  roleSites             
newt                    roles                 

I think this causes the following command (to create an Org thru the API), to fail as well. The error message is a little vague however, so it could be anything.

VPS: (finished: must succeed: curl -H 'Authorization: Bearer fbon8g22m7uf8q2.mwpnq3r5ul3h5w25fskwmkvqe4eysha54admqqci' -H 'Content-Type: application/json' -H 'accept: */*' -X PUT -d '{"name":"test","orgId":"test","subnet":"100.90.128.0/24"}' --url http://localhost:3004/v1/org, in 0.19 seconds)
VPS: {"data":null,"success":false,"error":true,"message":"An error occurred","status":500,"stack":null}

Am i doing something wrong here?

*Originally created by @jackrosenberg on 8/16/2025* I am in the proccess of making an automated test for pangolin (NixOS) and am running into some trouble. `pangctl set-admin-credentials --email "admin@example.test" --password "Password123!"` results in: ``` VPS # [ 7.669059] pangolin[886]: Running migrations... VPS # [ 7.719349] pangolin[886]: Migrations completed successfully. VPS # Failed to set admin credentials SqliteError: no such table: user VPS # at Database.prepare (...-pangolin-1.8.0/share/pangolin/node_modules/better-sqlite3/lib/methods/wrappers.js:5:21) VPS # at BetterSQLiteSession.prepareQuery (...pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/better-sqlite3/session.js:23:30) VPS # at BetterSQLiteSession.prepareOneTimeQuery (file:///nix/store/kqsg160ml3w59fka2q4b1l95gzyicc1w-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/sqlite-core/session.js:142:17) VPS # at SQLiteSelectBase._prepare (...-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/sqlite-core/query-builders/select.js:615:88) VPS # at SQLiteSelectBase.all (...-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/sqlite-core/query-builders/select.js:641:17) VPS # at SQLiteSelectBase.execute (...-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/sqlite-core/query-builders/select.js:650:17) VPS # at SQLiteSelectBase.then (...-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/query-promise.js:21:17) { VPS # code: 'SQLITE_ERROR' VPS # } VPS # Error: TransactionRollbackError [DrizzleError]: Rollback VPS # at BetterSQLiteTransaction.rollback (...-pangolin-1.8.0/share/pangolin/node_modules/drizzle-orm/sqlite-core/session.js:198:11) VPS # at Function.<anonymous> (...-pangolin-1.8.0/share/pangolin/dist/cli.mjs:17:1220) VPS # at async Object.handler (...-pangolin-1.8.0/share/pangolin/dist/cli.mjs:17:518) { VPS # cause: undefined VPS # } ``` Which seems pretty clear, `user` does not exist. However, running `sqlite3 /var/lib/pangolin/config/db/db.sqlite` `.tables` gives: ``` __drizzle_migrations newtSession session actions olms sites apiKeyActions orgDomains supporterKey apiKeyOrg orgs targets apiKeys passwordResetTokens twoFactorBackupCodes clientSession resourceAccessToken user <--- clientSites resourceOtp userActions clients resourcePassword userClients domains resourcePincode userDomains emailVerificationCodes resourceRules userInvites exitNodes resourceSessions userOrgs hostMeta resourceWhitelist userResources idp resources userSites idpOidcConfig roleActions versionMigrations idpOrg roleClients webauthnChallenge licenseKey roleResources webauthnCredentials limits roleSites newt roles ``` I think this causes the following command (to create an Org thru the API), to fail as well. The error message is a little vague however, so it could be anything. `VPS: (finished: must succeed: curl -H 'Authorization: Bearer fbon8g22m7uf8q2.mwpnq3r5ul3h5w25fskwmkvqe4eysha54admqqci' -H 'Content-Type: application/json' -H 'accept: */*' -X PUT -d '{"name":"test","orgId":"test","subnet":"100.90.128.0/24"}' --url http://localhost:3004/v1/org, in 0.19 seconds)` `VPS: {"data":null,"success":false,"error":true,"message":"An error occurred","status":500,"stack":null}` Am i doing something wrong here?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/pangolin#1062