Support intro
Recognize app crashes with SIGBUS (Bus error, EXIT 135) when running in native TensorFlow mode on a VMware VM. The native libtensorflow binary won’t run; switching to WASM + purejs works as a fallback. Looking to understand the cause and confirm whether the WASM fallback is the right long-term approach, or whether native mode can be made to work in this environment.
The Basics
- Nextcloud Server version: 33.0.6 Enterprise (33.0.6.3)
- Recognize app version: 11.0.1
- Operating system and version: Ubuntu 24.04.4 LTS (kernel 6.8.0-124-generic)
- Web server and version: Apache 2.4.58 (Ubuntu)
- Reverse proxy and version: N/A
- PHP version: 8.3.6 (NTS, OPcache enabled)
- Is this the first time you’ve seen this error? (Yes / No): Yes
- When did this problem seem to first start? During initial Recognize setup / first
recognize:classifyrun - Installation method: Archive / manual install (from release, directly on the OS) — running on a VMware VM, no Docker/AIO
- Are you using Cloudflare, mod_security, or similar? (Yes / No): No
Summary of the issue you are facing:
Recognize runs on a VMware-based VM (Intel Xeon Platinum 8558, 8 vCPUs, 16 GiB RAM). In native TensorFlow mode the classifier crashes immediately with a SIGBUS / Bus error (exit code 135). /proc/cpuinfo on the VM shows the hypervisor flag.
Switching tensorflow.mode=wasm alone did not resolve it — the classifier still crashed while native artifacts (tfjs_binding.node, libtensorflow.so symlinks) were present on disk. It started working only after also setting tensorflow.purejs=true. In that configuration, object recognition and face detection both work.
Questions:
- What typically causes a SIGBUS from the native libtensorflow binary on a virtualized host — is CPU masking / EVC on the hypervisor a likely cause, and is there a supported way to run native mode in that case (e.g. required CPU flags, host CPU passthrough)?
- Why does
tensorflow.mode=wasmalone still crash when native artifacts are present on disk, and istensorflow.purejs=truethe intended/recommended way to fully force the WASM path? - Is WASM + purejs a supported long-term configuration, or only a workaround?
Steps to replicate it (hint: details matter!):
- Install Recognize on a manual/non-container Nextcloud running on a VMware VM (
hypervisorflag present in/proc/cpuinfo). - Download models and run
sudo -u www-data php /var/www/nextcloud/occ recognize:classifyin default (native) TensorFlow mode. - Process crashes with SIGBUS / Bus error (EXIT 135).