TypeError: fsStat.Settings is not a constructor

opensearch-dashboards 2.15.0 (upgraded from 2.7.0) on Ubuntu 20.04

Startup fails with the message: TypeError: fsStat.Settings is not a constructor
Then, the plugins and service does a clean shutdown. All the plugins are upgraded to 2.15.0 also.

I’ve tried using a very basic config.yml to eliminate any specific setting in there as the cause, it seems to fail the same way regardless of what’s in the config.

...
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"For plugin \"securityDashboards\"..."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"For plugin \"observabilityDashboards\"..."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"For plugin \"queryWorkbenchDashboards\"..."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"For plugin \"bfetch\"..."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","legacy-service"],"pid":3289355,"message":"starting legacy service"}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","status"],"pid":3289355,"status":{"level":"available","summary":"All services are available"},"message":"Recalculated overall status"}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","root"],"pid":3289355,"message":"shutting root down"}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["fatal","root"],"pid":3289355,"message":"TypeError: fsStat.Settings is not a constructor\n    at new Reader (/usr/share/opensearch-dashboards/node_modules/fast-glob/out/readers/reader.js:9:32)\n    at new ReaderStream (/usr/share/opensearch-dashboards/node_modules/fast-glob/out/readers/stream.js:9:9)\n    at new ProviderAsync (/usr/share/opensearch-dashboards/node_modules/fast-glob/out/providers/async.js:8:24)\n    at getWorks (/usr/share/opensearch-dashboards/node_modules/fast-glob/out/index.js:58:22)\n    at FastGlob (/usr/share/opensearch-dashboards/node_modules/fast-glob/out/index.js:11:19)\n    at /usr/share/opensearch-dashboards/node_modules/globby/index.js:133:52\n    at Array.map (<anonymous>)\n    at module.exports (/usr/share/opensearch-dashboards/node_modules/globby/index.js:133:40)\n    at getTranslationPaths (/usr/share/opensearch-dashboards/src/legacy/server/i18n/get_translations_path.js:47:19)\n    at async Promise.all (index 0)\n    at OsdServer.i18nMixin (/usr/share/opensearch-dashboards/src/legacy/server/i18n/index.js:45:28)\n    at OsdServer.mixin (/usr/share/opensearch-dashboards/src/legacy/server/osd_server.js:118:7)\n    at OsdServer.listen (/usr/share/opensearch-dashboards/src/legacy/server/osd_server.js:129:5)\n    at LegacyService.createOsdServer (/usr/share/opensearch-dashboards/src/core/server/legacy/legacy_service.js:277:9)\n    at LegacyService.start (/usr/share/opensearch-dashboards/src/core/server/legacy/legacy_service.js:122:24)\n    at Server.start (/usr/share/opensearch-dashboards/src/core/server/server.js:278:5)\n    at Root.start (/usr/share/opensearch-dashboards/src/core/server/root/index.js:69:14)\n    at bootstrap (/usr/share/opensearch-dashboards/src/core/server/bootstrap.js:114:5)\n    at Command.<anonymous> (/usr/share/opensearch-dashboards/src/cli/serve/serve.js:192:5)"}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","server"],"pid":3289355,"message":"stopping server"}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","legacy-service"],"pid":3289355,"message":"stopping legacy service"}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-service"],"pid":3289355,"message":"Stopping plugins service"}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["info","plugins-system"],"pid":3289355,"message":"Stopping all plugins."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"Stopping plugin \"bfetch\"..."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"Stopping plugin \"queryWorkbenchDashboards\"..."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"Stopping plugin \"observabilityDashboards\"..."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"Stopping plugin \"securityDashboards\"..."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"Stopping plugin \"savedObjectsManagement\"..."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"Stopping plugin \"discover\"..."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"Stopping plugin \"visTypeTagcloud\"..."}
{"type":"log","@timestamp":"2024-07-24T18:27:53Z","tags":["debug","plugins-system"],"pid":3289355,"message":"Stopping plugin \"visTypeMetric\"..."}
...
root@xxx-dashboards-staging-1:/usr/share/opensearch-dashboards# sudo -u opensearch /usr/share/opensearch-dashboards/bin/opensearch-dashboards-plugin list
alertingDashboards@2.15.0.0
anomalyDetectionDashboards@2.15.0.0
assistantDashboards@2.15.0.0
customImportMapDashboards@2.15.0.0
ganttChartDashboards@2.15.0.0
indexManagementDashboards@2.15.0.0
mlCommonsDashboards@2.15.0.0
notificationsDashboards@2.15.0.0
observabilityDashboards@2.15.0.0
queryWorkbenchDashboards@2.15.0.0
reportsDashboards@2.15.0.0
searchRelevanceDashboards@2.15.0.0
securityAnalyticsDashboards@2.15.0.0
securityDashboards@2.15.0.0

Any ideas?

I figured this out. My playbook just unpacked the tar into the existing install path at /usr/share/opensearch-dashboards, which ended up containing files from two versions mashed together. Moving that whole directory and unpacking from the tar into a clean path resolved the issue.
mv /usr/share/opensearch-dashboards /tmp

1 Like