Mattermost Server Version
11.10.2
Operating System
Ubuntu 26.04 (and probably any other Unix-like OS)
Steps to reproduce
- wget https://releases.mattermost.com/11.11.0/mattermost-11.11.0-linux-amd64.tar.gz # current latest
- tar tvf mattermost-11.11.0-linux-amd64.tar.gz | head
Expected behavior
drwxrwxr-x root/root 0 2026-09-11 08:52 mattermost/
drwxrwxr-x root/root 0 2026-09-11 08:52 mattermost/prepackaged_plugins/
-rw-rw-r-- root/root 32570767 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-calls-v1.12.2-linux-amd64.tar.gz
-rw-rw-r-- root/root 566 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-calls-v1.12.2-linux-amd64.tar.gz.sig
-rw-rw-r-- root/root 15900090 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-github-v2.7.1-linux-amd64.tar.gz
-rw-rw-r-- root/root 566 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-github-v2.7.1-linux-amd64.tar.gz.sig
-rw-rw-r-- root/root 16578584 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-gitlab-v1.13.0-linux-amd64.tar.gz
-rw-rw-r-- root/root 566 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-gitlab-v1.13.0-linux-amd64.tar.gz.sig
-rw-rw-r-- root/root 9828026 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-jira-v4.7.1-linux-amd64.tar.gz
-rw-rw-r-- root/root 566 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-jira-v4.7.1-linux-amd64.tar.gz.sig
Observed behavior
drwxrwxrwx root/root 0 2026-09-11 08:52 mattermost/
drwxrwxrwx root/root 0 2026-09-11 08:52 mattermost/prepackaged_plugins/
-rw-rw-rw- root/root 32570767 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-calls-v1.12.2-linux-amd64.tar.gz
-rw-rw-rw- root/root 566 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-calls-v1.12.2-linux-amd64.tar.gz.sig
-rw-rw-rw- root/root 15900090 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-github-v2.7.1-linux-amd64.tar.gz
-rw-rw-rw- root/root 566 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-github-v2.7.1-linux-amd64.tar.gz.sig
-rw-rw-rw- root/root 16578584 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-gitlab-v1.13.0-linux-amd64.tar.gz
-rw-rw-rw- root/root 566 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-gitlab-v1.13.0-linux-amd64.tar.gz.sig
-rw-rw-rw- root/root 9828026 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-jira-v4.7.1-linux-amd64.tar.gz
-rw-rw-rw- root/root 566 2026-09-11 08:52 mattermost/prepackaged_plugins/mattermost-plugin-jira-v4.7.1-linux-amd64.tar.gz.sig
Additional Information
The installation instructions suggest extracting the files as non-root, which will result in the user’s umask being applied to the output files, so that’ll cause the world-writablity bit to get dropped (hopefully for most users).
It’d still be better though if the files were 0660/0770 (or at least 0664/0775) even when extracted as root. (Group-writability is enforced by the instructions’ sudo chmod -R g+w /opt/mattermost in any case.)
I just built 2.42.3, and it appears to have fixed this — maybe via [PR #9789](https://github.com/mattermost/mattermost-mobile/pull/9789#:~:text=bad%2Dcertificate%20reporting.-,Build%20Script,-File%3A%20scripts)?
My build environment is an Ubuntu 24.04 VM.
Turns out I wasn’t running npm install in my build script, but that also apparently isn’t the issue: building after an npm install results in an equally broken (i.e. iconless) build as without it.
I’ll attach an output log from the npm install part. It at least mentions postinstall.sh.
npm-install.log
I don’t know; depends on whether it is run as part of the documented npm run build:android build command, which is what I’m using.
After updating my build of the mobile app from 2.40.0 to 2.41.1 (and no other changes in the build environment), all icons in the resulting app have been replaced with a ”☒”, and all channel icons with what looks like a Chinese character (the app is supposed to use English, like the OS). Only user profile pictures seem unaffected (except for the overlaid status indicator, which *is* affected).
I’ve so far tested this on a phone running Android 10 and a tablet running Android 15. Both are using the ”Onyx” theme (and switching the theme has no impact on the issue). The server is running the latest release 11.8.1 (and the web UI is unaffected).


According to the [changelog](https://docs.mattermost.com/product-overview/mobile-app-changelog.html), there have been two releases since 2.29.1, but 2.29.1 is the latest on the [releases page](https://github.com/mattermost/mattermost-mobile/releases) here on Github. 2.30.0 and now 2.31.0 (apparently released today) are missing.
I build on release tags, and it looks like building 2.28.0 now succeeds with node 22 as well (whereas 2.27.0 still failed). So I think this is fixed now!
No problem; like I said, using node 20 works fine. I only noticed this issue recently, when I rebuilt my build environment, and tried doing so by the book (i.e. according to the docs).
If there’s something I can do to try to further narrow this down, let me know. I’m doing the build in an Ubuntu 24.04 VM, which I can restore to a working snapshot if testing causes it to break.
The Developer setup documentation says ”We recommend using NodeJS v22”, but trying to build the app (release 2.27.0) with node 22 fails (after nvm install 22.14.0):
npm error code EBADENGINE
npm error engine Unsupported engine
npm error engine Not compatible with your version of node/npm: mattermost-mobile@2.27.0
npm error notsup Not compatible with your version of node/npm: mattermost-mobile@2.27.0
npm error notsup Required: {"node":"^18.18.0 || ^20.0.0","npm":"^9 || ^10"}
npm error notsup Actual: {"npm":"10.9.2","node":"v22.14.0"}
npm error A complete log of this run can be found in: /home/jani/.npm/_logs/2025-04-20T11_20_48_320Z-debug-0.log
The build works if I install node 20.19.0 instead.
Trying to build v2.25.1 with `npm build:android` fails with what looks like a missing dependency. This was not an issue with v2.25.0, so the cause is some recent change.
The full log is below, but here’s what I think is the crucial part:
* What went wrong:
Could not determine the dependencies of task ':app:mergeReleaseNativeLibs'.
> Could not resolve all dependencies for configuration ':app:releaseRuntimeClasspath'.
> Could not resolve project :frameanimation.
Required by:
project :app > project :expo > project :expo-image
> No matching variant of project :frameanimation was found. The consumer was configured to find a library for use during runtime, preferably optimized for Android, as well as attribute 'com.android.build.api.attributes.AgpVersionAttr' with value '8.2.1', attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'release', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm' but:
- No variants exist.
> Could not resolve project :gif.
Required by:
project :app > project :expo > project :expo-image
> No matching variant of project :gif was found. The consumer was configured to find a library for use during runtime, preferably optimized for Android, as well as attribute 'com.android.build.api.attributes.AgpVersionAttr' with value '8.2.1', attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'release', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm' but:
- No variants exist.
fail.log