Mattermost changelog

Mattermost is an open source platform for secure collaboration across the entire software development lifecycle.

Important

From Mattermost v9.2, this changelog summarizes updates for the latest cloud and self-hosted versions of Mattermost to be deployed and upgraded on infrastructure you control.

Release v9.4 - Feature Release

  • 9.4.2, released 2024-01-30

    • Mattermost v9.4.2 contains low to medium severity level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.

    • Fixed an issue with true-up reports sending active users and not activated users. Added Monthly Active Users (MAU) as part of the true-up reports.

    • Mattermost v9.4.2 contains no database or functional changes.

  • 9.4.1, released 2024-01-16

    • Fixed an issue where getChannelMemberOnly failed to fetch data when certain fields were NULL.

  • 9.4.0, released 2024-01-16

    • Original 9.4.0 release.

Important Upgrade Notes

  • MySQL v5.7 is at end of life. We recommend all customers to upgrade to at least 8.x. For now, we are logging a warning. From Mattermost v9.5, which is the next Extended Support Release, we will stop supporting MySQL v5.7 altogether.

Important

If you upgrade from a release earlier than v9.3, please read the other Important Upgrade Notes.

Compatibility

  • Updated the minimum required Edge version to v118+.

Improvements

See this walkthrough video on some of the improvements in our latest release below.

User Interface (UI)

  • Updated the pre-packaged GitHub plugin version to v2.1.7.

  • Pre-packaged Calls plugin version v0.22.2.

  • Improved the user interface of the channel notifications modal.

  • Emojis are now enlarged in emoji tooltips on mouse hover.

  • Added a gap of 8px between buttons in the modal footer when opened in the mobile web view.

  • Updated empty states to align with new branding and made changes to the empty state copy.

  • Adjusted the position of the suggestion list in “Add to a channel” modal to be below or above the text field.

Administration

  • Added support for IP Filtering in Cloud (Cloud Enterprise plan) (this feature is disabled by default and behind a feature flag).

  • Added support for Bring Your Own Key (BYOK) Encryption (Cloud Enterprise plan).

  • An optional dedicated filestore is now used for compliance exports if configured (Cloud Enterprise plan).

  • MessageExportSettings.GlobalRelaySettings.CustomerType now supports “CUSTOM”.

  • Added new ServerMetrics hook to allow plugins to register a custom HTTP endpoint to serve their metrics under the server’s metrics HTTP listener.

  • Admins now have the ability to pipe the output of mmctl websocket into the JSON parser.

  • Added stores for OAuth Outgoing Connections.

  • Added last login timestamp for users, and added a materialized view and a refresh job to keep track of post stats for PostgreSQL.

  • Allowed plugin requests to include Authorization headers from external systems.

  • Added a mmctl command mmctl system supportpacket to download the Support Packet.

  • Added a new mmctl command oauth list for listing registered OAuth2 applications.

Bug Fixes

  • Fixed an issue with the emoji reaction toggle behavior.

  • Fixed an issue with the spacing between Playbooks and the separator in the Apps bar.

config.json

  • Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.

Changes to all plans:

  • Under RefreshPostStatsRunTime in config.json:

    • Added RefreshPostStatsRunTime to add last login timestamp for users and to add materialized view and refresh job to keep track of post stats for PostgreSQL.

Changes to the Enterprise plan:

  • Under GlobalRelayMessageExportSettings in config.json:

    • Added two new configuration settings CustomSMTPServerName and CustomSMTPPort to allow setting a custom URL and port for Global Relay export. This enables compliance export to integrate with Proofpoint.

Open Source Components:

  • Added @mattermost/desktop-api and ipaddr.js to https://github.com/mattermost/mattermost/.

Go Version

  • v9.4 is built with Go v1.20.7.

Known Issues

  • Non-channel-admin users can no longer use message links in private channels MM-56575.

  • Preview doesn’t work when editing a channel header MM-56572.

  • The channel member count shows as zero in the Browse channels modal MM-56266.

  • Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history MM-33823.

  • Status may sometimes get stuck as Away or Offline in High Availability mode with IP Hash turned off.

  • Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms.

  • Slack import through the CLI fails if email notifications are enabled.

  • Push notifications don’t always clear on iOS when running Mattermost in High Availability mode.

  • The Playbooks left-hand sidebar doesn’t update when a user is added to a run or playbook without a refresh.

  • If a user isn’t a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration.

  • The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh.

Contributors

Release v9.3 - Feature Release

  • 9.3.1, released 2024-01-30

  • 9.3.0, released 2023-12-15

    • Original 9.3.0 release.

Important Upgrade Notes

Compatibility

  • Updated minimum required Firefox version to v115+.

  • Updated minimum supported Chromium version to 118+.

Improvements

See this walkthrough video on some of the improvements in our latest release below.

User Interface (UI)

  • Updated pre-packaged Playbooks plugin version to v1.39.1.

  • Updated pre-packaged Calls version to v0.21.1.

  • Updated pre-packaged Jira plugin version to v4.0.1. Also see v4.0.0 for recent breaking changes.

  • Added Vietnamese (Beta) as a new language.

  • Added the ability to passively track keywords with highlights without triggering a notification (Professional and Enterprise plans).

  • Updated the Settings modal with an improved user interface.

  • Added a new Jump to recents banner when a channel is scrolled up.

  • Modified the behavior of the code button (Ctrl+Alt+C) to create inline codes or code blocks.

  • Disabled markdown keybindings within code blocks.

  • Added a Back button to the /access_problem page.

  • Added a default limit of the number of reactions per post.

Performance

  • Removed pre-fetch preference and set new prefetch limits for the webapp.

  • Improved websocket event marshaling performance.

  • Batched loading of recently used emojis on initial load.

Administration

  • The tooltip on the announcement bar in the System Console is now widened.

  • Improved the error message when trying to activate a plugin in an unsupported environment.

  • Added a file storage permission check to the workspace health dashboard.

  • Performed a cleanup in preparation for adding support for multi-word keywords that trigger notification.

  • Added a warning log message when the app runs as root.

  • Removed all uses of the ExperimentalTimezone setting. The Timezone feature is now always enabled and no longer behind a configuration setting.

  • Added support for previewing WebVTT attachments.

  • Introduced separate AdvancedLogging levels for LDAP messages.

  • Introduced trace logging level for LDAP messages.

  • Added a new way to modify WebSocket messages sent to individual connections.

  • Added a new server side hook MessagesWillBeConsumed to allow modifying post objects after they are grabbed from the database but before they are delivered to the client. This is behind a feature flag and disabled by default.

  • Users and posts are now pretty-printed in the logs.

  • Improved file extraction logging.

  • Exposed ThreadView and AdvancedCreateComment components in the webapp plugin exported components list.

  • Added Logging > Advanced Logging setting to the System Console to allow admins to configure custom log targets via the user interface.

Bug Fixes

  • Fixed an issue where marking a Group Message as unread didn’t show the badge count correctly.

  • Fixed an issue where invite_id was being reset on all team changes.

  • Fixed an issue where interactive dialog elements with subtype number didn’t handle a 0 value properly.

  • Fixed an issue with the download link in channel file search items when including a path in the Site URL setting.

  • Fixed an issue with the formatting of special mentions in the right-hand side.

  • Fixed MessageWillBeUpdated plugin hook to allow rejections.

  • Fixed an issue with some shortcuts not working as expected.

  • Fixed the message history not clearing the input on the center channel.

  • Fixed an issue where a higher contrast was generated for some usernames.

  • Fixed an issue where newly created Group Messages showed having 0 members.

  • Fixed an issue where an incorrect timestamp was assigned to support packet files.

  • Fixed an issue where the Reset Password link was not displayed if only LDAP/AD was enabled.

  • Fixed an issue where Recent Mentions showed posts for other similar named users.

  • Fixed an error that appeared when updating the header of Group Messages.

  • Fixed an issue that caused the server to get stuck during shutdown due to a deadlock in a dependency.

  • Fixed an issue where Desktop App clients would be shown an error when trying to open file preview links.

  • Fixed an issue with double URL encoding of Oauth redirect URI params.

  • Fixed an issue where users couldn’t at-mention custom groups in group constrained teams and channels.

  • Fixed an issue where the channel admin wasn’t being set when converting a Group Message to a private channel.

config.json

  • Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.

Changes to all plans:

  • Removed DisplaySettings.ExperimentalTimezone setting.

  • Under ServiceSettings in config.json:

    • Added DefaultUniqueReactionsPerPost and MaxUniqueReactionsPerPost to fix an issue where invalid reactions could be added to posts and to add a default limit for the number of reactions per post.

API Changes

  • Added an API to batch requests for custom emojis on page load.

Database Changes

  • NextSyncAt and Description columns are removed from the SharedChannelsRemotes table. Migration impact is considered to be minimal considering the possible table size.

Go Version

  • v9.3 is built with Go v1.20.7.

Known Issues

  • Mattermost Omnibus: Unable to install omnibus due to unmet dependencies MM-56080.

  • Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history MM-33823.

  • Status may sometimes get stuck as Away or Offline in High Availability mode with IP Hash turned off.

  • Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms.

  • Slack import through the CLI fails if email notifications are enabled.

  • Push notifications don’t always clear on iOS when running Mattermost in High Availability mode.

  • The Playbooks left-hand sidebar doesn’t update when a user is added to a run or playbook without a refresh.

  • If a user isn’t a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration.

  • The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh.

Contributors

Release v9.2 - Feature Release

  • 9.2.5, released 2024-01-30

  • 9.2.4, released 2024-01-09

    • Mattermost v9.2.4 contains medium severity level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.

    • Mattermost v9.2.4 contains the following functional changes:

      • Fixed an issue where invalid reactions could be added to posts. Added default limit of the number of reactions per post.

  • 9.2.3, released 2023-11-29

  • 9.2.2, released 2023-11-08

  • 9.2.1, released 2023-11-06

    • Fixed an issue where Ubuntu GLIBC errors were thrown on Ubuntu 20.04 and Debian Bullseye versions.

  • 9.2.0, released 2023-11-02

    • Original 9.2.0 release

Important Upgrade Notes

  • Fixed data retention policies to run jobs when any custom retention policy is enabled even when the global retention policy is set to keep-forever. Before this fix, the enabled custom data retention policies wouldn’t run as long as the global data retention policy was set to keep-forever or was disabled. After the fix, the custom data retention policies will run automatically even when the global data retention policy is set to keep-forever. Once the server is upgraded, posts may unintentionally be deleted. Admins should make sure to disable all custom data retention policies before upgrading, and then re-enable them again after upgrading.

Important

If you upgrade from a release earlier than v9.1, please read the other Important Upgrade Notes.

Compatibility

  • Updated minimum required Edge version to 116+.

Improvements

See this walkthrough video on some of the improvements in our latest release below.

User Interface (UI)

  • Improved readability by displaying system messages on multiple lines when editing a channel header.

  • Combined “joined/left” event types in system messages.

  • Added a new user preference to disable webapp prefetching via Settings > Advanced > Allow Mattermost to prefetch channel posts. You must enable Client Performance Debugging in the System Console by going to Environment > Developer in order for this setting to appear. This setting and Client Performance Debugging should only be enabled temporarily if users are experiencing performance issues.

  • Pre-packaged NPS plugin version v1.3.3.

  • Pre-packaged Todo plugin version v0.7.1.

Administration

  • JSON null value cases are now handled correctly by also checking that the pointer is no longer null when unmarshalling to a pointer.

  • An annotated logger is now used to capture LDAP and SAML logs.

  • Replaced github.com/mattermost/gziphandler with github.com/klauspost/compress/gzhttp.

  • Performance metrics now contain information on if a given request was sent during a page load or a websocket reconnect.

  • Elasticsearch aggregation jobs no longer start when a bulk indexing job is currently running.

  • Added heap profile, CPU profile, and goroutines profile to the support package.

  • Merged WIP i18n locales, but disallowed selecting unsupported locales.

Bug Fixes

  • Fixed a panic where a simple worker would crash if it failed to get a job.

  • Fixed post props on update to properly see channel links.

  • Fixed an issue where the API for drafts would return empty drafts.

  • Fixed the alignment of the Help menu in the global header.

  • Fixed a broken link in the Edit Channel header modal.

  • Fixed an issue that prevented users to be added to channels from the System Console.

  • Fixed an issue where the channel member count increased when adding an already present user.

  • Fixed an issue where plugin developers were unable to create a textarea in interactive dialogs.

  • Fixed an issue where copy pasting images from Chrome failed.

config.json

  • Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.

Changes to all plans:

  • Under LogSettings in config.json:

    • Added a new configuration setting MaxFieldSize to add the ability to size-limit log fields during logging.

API Changes

  • Added origin_client to the mattermost_api_time metrics.

Go Version

  • v9.2 is built with Go v1.20.7.

Known Issues

  • Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history MM-33823.

  • Status may sometimes get stuck as Away or Offline in High Availability mode with IP Hash turned off.

  • Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms.

  • Slack import through the CLI fails if email notifications are enabled.

  • Push notifications don’t always clear on iOS when running Mattermost in High Availability mode.

  • The Playbooks left-hand sidebar doesn’t update when a user is added to a run or playbook without a refresh.

  • If a user isn’t a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration.

  • The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh.

Contributors