I am experiencing a crash loop with Kibana version 8.19.17 after upgrade on Rocky Linux 9.8 (Kernel 5.14). The service starts but crashes and restarts every ~20 seconds.
Error Logs
Here is the fatal error captured from the journal logs:
FATAL Error [ERR_REQUIRE_ESM]: require() of ES Module /usr/share/kibana/node_modules/@elastic/charts/node_modules/uuid/dist-node/index.js from /usr/share/kibana/node_modules/@elastic/charts/dist/components/chart.js not supported.
Instead change the require of index.js in /usr/share/kibana/node_modules/@elastic/charts/dist/components/chart.js to a dynamic import() which is available in all CommonJS modules.
Can someone help? I did not get any king of errors during the upgrade and the cluster nodes are running without problems.
I did some further troubleshooting in an isolated lab environment and confirmed this is a recurring regression across multiple branches:
Upgrading from 8.19.16 to 8.19.17 breaks Kibana with this exact ESM compatibility error.
Upgrading from 9.4.2 to 9.4.3 also breaks Kibana with the identical stack trace.
This highly suggests that a recent shared dependency update (most likely @elastic/charts changing how it pulls the uuid package) was merged into both active release branches (8.x and 9.x) simultaneously, breaking the CommonJS/ESM module boundaries.
Current Production Status: I currently have a production cluster with 9 data nodes already upgraded to 9.4.3, running alongside Kibana still on 9.4.2. This specific cross-version setup is working perfectly fine without any issues, further proving that the breakdown happens strictly during the Kibana 9.4.3/8.19.17 internal initialization process.
We shipped a vulnerability patch to @elastic/charts in 9.4.3 and 8.19.17. The patched version pulls in uuid@14, which is ESM-only and requires Node.js's require() of ESM support to load.
The --no-experimental-require-module flag — which disables that support — was removed from the default node.options in 9.4.0 / 8.19.15, so fresh installs work fine. But if you've ever edited your node.options (e.g. to change --max-old-space-size), your package manager preserves the old file on upgrade, keeping the stale flag. That's what causes the crash.
Immediate fix: check /etc/kibana/node.options and remove the --no-experimental-require-module line, then start Kibana.
Permanent fix: we're removing the server-side @elastic/charts imports entirely (#276273), so this dependency won't be loaded on the server at all regardless of node.options flags.
Thank you so much for the detailed explanation! That was exactly the issue.
I checked my /etc/kibana/node.options and indeed, the --no-experimental-require-module flag was still present due to my previous custom memory configurations being preserved during the upgrade.
Commenting out that line and restarting the service fixed the crash instantly. Kibana 9.4.3 is now up and running perfectly.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.