Skip to content

feat(e2e): introduce e2e tests for bulk-import plugin#1972

Closed
AndrienkoAleksandr wants to merge 33 commits into
redhat-developer:mainfrom
AndrienkoAleksandr:add-bulk-import-e2e-tests
Closed

feat(e2e): introduce e2e tests for bulk-import plugin#1972
AndrienkoAleksandr wants to merge 33 commits into
redhat-developer:mainfrom
AndrienkoAleksandr:add-bulk-import-e2e-tests

Conversation

@AndrienkoAleksandr

@AndrienkoAleksandr AndrienkoAleksandr commented Feb 25, 2026

Copy link
Copy Markdown
Contributor

@AndrienkoAleksandr AndrienkoAleksandr changed the title feat(e2e): introduce e2e tests for bulk-import plugin feat(e2e): introduce e2e tests for bulk-import plugin(orchestrator mode) Feb 25, 2026
@openshift-ci openshift-ci Bot added the lgtm label Feb 25, 2026
@github-actions github-actions Bot added mandatory-workspace PR affects a workspace with required plugins for releases workspace-update PR modifies files in an existing workspace labels Feb 25, 2026
@openshift-ci openshift-ci Bot removed the lgtm label Feb 26, 2026
@openshift-ci

openshift-ci Bot commented Feb 26, 2026

Copy link
Copy Markdown

New changes are detected. LGTM label has been removed.

@gashcrumb

Copy link
Copy Markdown
Member

/test e2e-ocp-helm

@rhdh-test-bot

Copy link
Copy Markdown

❌ Failed E2E Tests - bulk-import

Platform: ocp 4.18 | RHDH Version: 1.10 | Duration: 6m 27s
Passed: 0 | Failed: 0 | Flaky: 0 | Skipped: 0
Playwright Report | Build Log | Artifacts

Comment thread workspaces/bulk-import/e2e-tests/package.json Outdated
@subhashkhileri

Copy link
Copy Markdown
Member

/hold

Comment thread workspaces/bulk-import/e2e-tests/tests/fixtures.ts Outdated
@AndrienkoAleksandr

Copy link
Copy Markdown
Contributor Author

/test e2e-ocp-helm

@rhdh-test-bot

Copy link
Copy Markdown

❌ Failed E2E Tests - bulk-import

Platform: ocp 4.18 | RHDH Version: 1.10 | Duration: 8m 51s
Passed: 0 | Failed: 1 | Flaky: 0 | Skipped: 1
Playwright Report | Build Log | Artifacts

@AndrienkoAleksandr

Copy link
Copy Markdown
Contributor Author

/test e2e-ocp-helm

@rhdh-test-bot

Copy link
Copy Markdown

❌ Failed E2E Tests - bulk-import

Platform: ocp 4.18 | RHDH Version: 1.10 | Duration: 8m 22s
Passed: 0 | Failed: 1 | Flaky: 0 | Skipped: 1
Playwright Report | Build Log | Artifacts

@AndrienkoAleksandr

Copy link
Copy Markdown
Contributor Author

/publish

@github-actions

github-actions Bot commented Mar 5, 2026

Copy link
Copy Markdown
Contributor

Publish workflow has completed with failure.

Publishing process

✅ Finished successfully.

  • Published container images:
    • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-bulk-import:pr_1972__7.0.1
    • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-bulk-import-backend:pr_1972__7.0.1

Backstage Compatibility Check

✅ All workspaces are compatible with the target Backstage version (1.45.3).

No action required.

Metadata Validation

❌ Found 2 validation error(s):

File Kind Message
red-hat-developer-hub-backstage-plugin-bulk-import-backend.yaml mismatch Version mismatch: expected "7.0.1" but got "6.5.1"
red-hat-developer-hub-backstage-plugin-bulk-import.yaml mismatch Version mismatch: expected "7.0.1" but got "1.18.1"

@AndrienkoAleksandr

Copy link
Copy Markdown
Contributor Author

/publish

@github-actions

github-actions Bot commented Mar 5, 2026

Copy link
Copy Markdown
Contributor

Publish workflow has completed with success.

Publishing process

✅ Finished successfully.

  • Published container images:
    • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-bulk-import:pr_1972__7.0.1
    • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-bulk-import-backend:pr_1972__7.0.1

Backstage Compatibility Check

✅ All workspaces are compatible with the target Backstage version (1.45.3).

No action required.

Metadata Validation

✅ All metadata files validated successfully.

Running e2e tests
/test e2e-ocp-helm

Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
@AndrienkoAleksandr AndrienkoAleksandr force-pushed the add-bulk-import-e2e-tests branch from 1cc8610 to 1ee6469 Compare May 19, 2026 02:39
@AndrienkoAleksandr

Copy link
Copy Markdown
Contributor Author

/publish

@github-actions

Copy link
Copy Markdown
Contributor

Publish workflow has completed with success.

Publishing process

✅ Finished successfully.

  • Published container images:
    • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-bulk-import:pr_1972__7.3.4
    • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-bulk-import-backend:pr_1972__7.3.4

Backstage Compatibility Check

✅ All workspaces are compatible with the target Backstage version (1.49.4).

No action required.

Metadata Validation

✅ All metadata files validated successfully.

Running e2e tests
/test e2e-ocp-helm

@github-actions

Copy link
Copy Markdown
Contributor


Smoke tests workflow failed.

⚠️ Smoke tests failed. Check the workflow logs for details.

Error logs from container
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js �[36mtype�[39m="unhandledRejection" �[36mstack�[39m="Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n    at Client_BetterSQLite3.initializeDriver (/opt/app-root/src/node_modules/knex/lib/client.js:202:13)\n    at new Client (/opt/app-root/src/node_modules/knex/lib/client.js:83:12)\n    at new Client_SQLite3 (/opt/app-root/src/node_modules/knex/lib/dialects/sqlite3/index.js:22:5)\n    at new Client_BetterSQLite3 (/opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js:5:1)\n    at Object.knex [as default] (/opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js:16:28)\n    at createSqliteDatabaseClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/sqlite3.cjs.js:49:46)\n    at Sqlite3Connector.getClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/sqlite3.cjs.js:118:20)\n    at DatabaseManagerImpl.getDatabase (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js:105:37)\n    at Object.getClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js:44:34)\n    at DatabaseKeyStore.create (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/DatabaseKeyStore.cjs.js:21:35)\n    at DatabasePluginKeySource.create (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/DatabasePluginKeySource.cjs.js:24:62)\n    at Object.createPluginKeySource (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/createPluginKeySource.cjs.js:11:60)\n    at Object.factory (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/authServiceFactory.cjs.js:44:51)\n    at Object.factory (/opt/app-root/src/node_modules/@backstage/backend-plugin-api/dist/services/system/types.cjs.js:51:37)\n    at /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/ServiceRegistry.cjs.js:228:38\n    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)"
�[2m2026-05-19T02:48:50.941Z�[22m �[34mbackstage�[39m �[31merror�[39m Unhandled rejection Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js �[36mtype�[39m="unhandledRejection" �[36mstack�[39m="Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n    at Client_BetterSQLite3.initializeDriver (/opt/app-root/src/node_modules/knex/lib/client.js:202:13)\n    at new Client (/opt/app-root/src/node_modules/knex/lib/client.js:83:12)\n    at new Client_SQLite3 (/opt/app-root/src/node_modules/knex/lib/dialects/sqlite3/index.js:22:5)\n    at new Client_BetterSQLite3 (/opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js:5:1)\n    at Object.knex [as default] (/opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js:16:28)\n    at createSqliteDatabaseClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/sqlite3.cjs.js:49:46)\n    at Sqlite3Connector.getClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/sqlite3.cjs.js:118:20)\n    at DatabaseManagerImpl.getDatabase (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js:105:37)\n    at Object.getClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js:44:34)\n    at DatabaseKeyStore.create (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/DatabaseKeyStore.cjs.js:21:35)\n    at DatabasePluginKeySource.create (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/DatabasePluginKeySource.cjs.js:24:62)\n    at Object.createPluginKeySource (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/createPluginKeySource.cjs.js:11:60)\n    at Object.factory (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/authServiceFactory.cjs.js:44:51)\n    at Object.factory (/opt/app-root/src/node_modules/@backstage/backend-plugin-api/dist/services/system/types.cjs.js:51:37)\n    at /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/ServiceRegistry.cjs.js:228:38\n    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)"
�[2m2026-05-19T02:48:50.941Z�[22m �[34mbackstage�[39m �[31merror�[39m Unhandled rejection Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js �[36mtype�[39m="unhandledRejection" �[36mstack�[39m="Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n    at Client_BetterSQLite3.initializeDriver (/opt/app-root/src/node_modules/knex/lib/client.js:202:13)\n    at new Client (/opt/app-root/src/node_modules/knex/lib/client.js:83:12)\n    at new Client_SQLite3 (/opt/app-root/src/node_modules/knex/lib/dialects/sqlite3/index.js:22:5)\n    at new Client_BetterSQLite3 (/opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js:5:1)\n    at Object.knex [as default] (/opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js:16:28)\n    at createSqliteDatabaseClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/sqlite3.cjs.js:49:46)\n    at Sqlite3Connector.getClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/sqlite3.cjs.js:118:20)\n    at DatabaseManagerImpl.getDatabase (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js:105:37)\n    at Object.getClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js:44:34)\n    at DatabaseKeyStore.create (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/DatabaseKeyStore.cjs.js:21:35)\n    at DatabasePluginKeySource.create (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/DatabasePluginKeySource.cjs.js:24:62)\n    at Object.createPluginKeySource (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/createPluginKeySource.cjs.js:11:60)\n    at Object.factory (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/authServiceFactory.cjs.js:44:51)\n    at Object.factory (/opt/app-root/src/node_modules/@backstage/backend-plugin-api/dist/services/system/types.cjs.js:51:37)\n    at /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/ServiceRegistry.cjs.js:228:38\n    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)"
�[2m2026-05-19T02:48:50.941Z�[22m �[34mbackstage�[39m �[31merror�[39m Unhandled rejection Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js �[36mtype�[39m="unhandledRejection" �[36mstack�[39m="Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n    at Client_BetterSQLite3.initializeDriver (/opt/app-root/src/node_modules/knex/lib/client.js:202:13)\n    at new Client (/opt/app-root/src/node_modules/knex/lib/client.js:83:12)\n    at new Client_SQLite3 (/opt/app-root/src/node_modules/knex/lib/dialects/sqlite3/index.js:22:5)\n    at new Client_BetterSQLite3 (/opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js:5:1)\n    at Object.knex [as default] (/opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js:16:28)\n    at createSqliteDatabaseClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/sqlite3.cjs.js:49:46)\n    at Sqlite3Connector.getClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/sqlite3.cjs.js:118:20)\n    at DatabaseManagerImpl.getDatabase (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js:105:37)\n    at Object.getClient (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js:44:34)\n    at DatabaseKeyStore.create (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/DatabaseKeyStore.cjs.js:21:35)\n    at DatabasePluginKeySource.create (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/DatabasePluginKeySource.cjs.js:24:62)\n    at Object.createPluginKeySource (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/plugin/keys/createPluginKeySource.cjs.js:11:60)\n    at Object.factory (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/auth/authServiceFactory.cjs.js:44:51)\n    at Object.factory (/opt/app-root/src/node_modules/@backstage/backend-plugin-api/dist/services/system/types.cjs.js:51:37)\n    at /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/ServiceRegistry.cjs.js:228:38\n    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)"
�[2m2026-05-19T02:48:50.942Z�[22m �[34mbackstage�[39m �[31merror�[39m Unhandled rejection Backend startup failed due to the following errors:
  Plugin 'healthcheck' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'healthcheck' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'healthcheck' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'app' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'app' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'app' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'catalog' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'catalog' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'catalog' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'proxy' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'proxy' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'proxy' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'scaffolder' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'scaffolder' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'scaffolder' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'search' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'search' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'search' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'events' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'events' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'events' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'permission' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'permission' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'permission' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'auth' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'auth' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'auth' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'dynamic-plugins-info' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'dynamic-plugins-info' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'dynamic-plugins-info' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'scalprum' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'scalprum' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'scalprum' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'translations' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'translations' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'translations' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'licensed-users-info' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'licensed-users-info' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'licensed-users-info' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'bulk-import' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'bulk-import' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'bulk-import' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js
  Plugin 'user-settings' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'user-settings' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'user-settings' because the factory function threw an error, Error: Knex: run
$ npm install better-sqlite3 --save
Cannot find module 'better-sqlite3'
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js
- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js
- /opt/app-root/src/packages/backend/dist/index.cjs.js �[36mtype�[39m="unhandledRejection" �[36mcause�[39m=undefined �[36mname�[39m="BackendStartupError" �[36mstack�[39m="BackendStartupError: Backend startup failed due to the following errors:\n  Plugin 'healthcheck' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'healthcheck' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'healthcheck' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'app' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'app' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'app' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'catalog' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'catalog' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'catalog' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'proxy' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'proxy' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'proxy' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'scaffolder' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'scaffolder' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'scaffolder' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'search' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'search' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'search' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'events' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'events' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'events' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'permission' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'permission' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'permission' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'auth' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'auth' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'auth' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'dynamic-plugins-info' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'dynamic-plugins-info' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'dynamic-plugins-info' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'scalprum' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'scalprum' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'scalprum' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'translations' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'translations' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'translations' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'licensed-users-info' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'licensed-users-info' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'licensed-users-info' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'bulk-import' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'bulk-import' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'bulk-import' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n  Plugin 'user-settings' startup failed; caused by Error: Failed to instantiate service 'core.httpRouter' for 'user-settings' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'user-settings' because the factory function threw an error, Error: Knex: run\n$ npm install better-sqlite3 --save\nCannot find module 'better-sqlite3'\nRequire stack:\n- /opt/app-root/src/node_modules/knex/lib/dialects/better-sqlite3/index.js\n- /opt/app-root/src/node_modules/knex/lib/dialects/index.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/internal/config-resolver.js\n- /opt/app-root/src/node_modules/knex/lib/knex-builder/Knex.js\n- /opt/app-root/src/node_modules/knex/lib/index.js\n- /opt/app-root/src/node_modules/knex/knex.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/connectors/mysql.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/DatabaseManager.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/database/databaseServiceFactory.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/database.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/CreateBackend.cjs.js\n- /opt/app-root/src/node_modules/@backstage/backend-defaults/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n    at #doStart (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:305:13)\n    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n    at async BackendInitializer.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:180:12)\n    at async BackstageBackend.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackstageBackend.cjs.js:19:12)"
�[2m2026-05-19T02:48:52.946Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-05-19T02:48:52.946Z] "GET /health HTTP/1.1" 404 0 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-05-19T02:48:52.946Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=404 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0"
�[2m2026-05-19T02:49:02.984Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-05-19T02:49:02.984Z] "GET /health HTTP/1.1" 404 0 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-05-19T02:49:02.984Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=404 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0"

@rhdh-test-bot

Copy link
Copy Markdown

❌ Failed E2E Tests - bulk-import

Platform: ocp 4.18 | RHDH Version: 1.10 | Duration: 5m 22s
Passed: 0 | Failed: 3 | Flaky: 0 | Skipped: 6
Playwright Report | Build Log | Logs | Artifacts

});

test.beforeEach(async ({ loginHelper, uiHelper, page }) => {
await loginHelper.loginAsKeycloakUser();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
await loginHelper.loginAsKeycloakUser();
await loginHelper.loginAsGithubUser();

Instead of using Keycloak, why don't you use the native GitHub login helper. I believe it handles the 2fa for you and you shouldn't need the custom github auth code that you have under github-web-session.ts and github-oauth-app-helper.ts.

await ensureGitHubOAuthAppForRhdh(namespace);
assertOAuthCredentialsPresent();
await rhdh.configure({
auth: options.auth ?? "keycloak",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
auth: options.auth ?? "keycloak",
auth: options.auth ?? "github",

Same as the loginAsGithubUser suggestion

});

test.beforeEach(async ({ loginHelper, uiHelper, page }) => {
await loginAsKeycloakUserBulkImport(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you not have used a guest user for this? Should be able to just add something like

auth:
  environment: development
  providers:
    guest:
      dangerouslyAllowOutsideDevelopment: true

to your app-config. And then just used loginAsGuest. After that you would just need to reject the GitHub pop up and then verify. Should allow you to remove some more of this custom logic

Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot

See analysis details on SonarQube Cloud

@AndrienkoAleksandr

Copy link
Copy Markdown
Contributor Author

/test e2e-ocp-helm

@rhdh-test-bot

Copy link
Copy Markdown

❌ Failed E2E Tests - bulk-import

Platform: ocp 4.18 | RHDH Version: 1.10 | Duration: 9m 35s
Passed: 0 | Failed: 3 | Flaky: 0 | Skipped: 6
Playwright Report | Build Log | Logs | Artifacts

@openshift-ci

openshift-ci Bot commented May 19, 2026

Copy link
Copy Markdown

@AndrienkoAleksandr: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-ocp-helm d166101 link false /test e2e-ocp-helm

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@AndrienkoAleksandr

Copy link
Copy Markdown
Contributor Author

Close on favor #2500

"devDependencies": {
"@eslint/js": "^9.39.2",
"@playwright/test": "^1.56.1",
"@red-hat-developer-hub/e2e-test-utils": "1.1.32",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a few versions behind (1.1.32) — latest is 1.1.43 and we're aligning everything in #2480. Could you pull that up before this merges?

@AndrienkoAleksandr

Copy link
Copy Markdown
Contributor Author

Closing in favor of #2500. Thank you very much, @PatAKnight , for your help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mandatory-workspace PR affects a workspace with required plugins for releases workspace-update PR modifies files in an existing workspace

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants