v9 changelog#

Important

Support for Mattermost Server v8.1 Extended Support Release has come to the end of its life cycle on May 15, 2024. Upgrading to Mattermost Server v9.5 or later is required.

Release v9.10 - Feature Release#

  • 9.10.1, released 2024-07-22

    • Mattermost v9.10.1 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.

    • Pre-packaged Mattermost Copilot plugin version v0.8.3.

    • Ensured that the web app only requests notification permissions when needed. Fixed an issue with desktop notifications not being sent on Safari MM-59416.

    • Fixed an issue where the app crashed on iOS Safari MM-59296.

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

  • 9.10.0, released 2024-07-16

    • Original 9.10.0 release.

Important

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

Improvements#

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

User Interface (UI)#

  • Pre-packaged GitLab plugin version v1.9.1.

  • Pre-packaged Mattermost Copilot plugin version v0.8.1.

  • Pre-packaged Calls plugin version v0.28.2.

  • Re-designed the user profile popover and improved its performance.

  • Added banner to prompt users to give desktop notification permissions when opening the app.

  • Increased the width of the profile picture setting to match other user settings.

  • Improved screen reader support for the emoji picker.

  • Improved the accessibility of plugin buttons in the channel header.

Administration#

  • Extended PluginSiteStatsHandler to support more advanced visualization types.

  • Stopped broadcasting channel_deleted/channel_restored messages from private channels to non-members.

Performance#

  • Added page load time to client performance metrics.

  • Added a metric to track time it takes for the Threads view to load.

  • Added support for mobile client metrics.

  • Increased the range of LCP metrics that can be measured.

  • Added polling of getStatusesByIds and getProfilesByIds network calls. The interval of which is configurable with the UsersStatusAndProfileFetchingPollIntervalMilliseconds configuration variable.

  • Added defer loading plugins scripts.

Bug Fixes#

  • Fixed an issue where the RefreshPostStats job could fail.

  • Fixed an issue where attempting to create a team with the URL of an existing team showed the wrong error message.

  • Fixed an issue where visibilitychange JavaScript browser event had not been added for updating the user’s current timezone.

  • Fixed an issue where the last admin in the system was allowed to be demoted.

  • Fixed an issue where banners set by system administrators did not stack below system banners, and appeared underneath them instead. Existing system banners have remained unchanged.

  • Fixed an issue with an incorrect wrapping of long words in numbered lists.

  • Fixed an incorrect behavior of the image proxy when site URL is changed.

  • Fixed an issue where cache invalidation messages for websocket connections were not being sent across the cluster, causing missed websocket events.

  • Fixed EnableClientMetrics setting not being available in the System Console.

config.json#

New 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 ExperimentalSettings in config.json:

    • Added UsersStatusAndProfileFetchingPollIntervalMilliseconds to configure the interval of getStatusesByIds and getProfilesByIds network calls.

API Changes#

  • Added a new plugin API endpoint GetUsersByIds to retrieve a list of users by their ids.

Go Version#

  • v9.10 is built with Go v1.21.8.

Known Issues#

  • 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.

Contributors#

Release v9.9 - Feature Release#

  • 9.9.2, released 2024-07-22

  • 9.9.1, released 2024-07-02

    • Mattermost v9.9.1 contains low to high 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 where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged.

    • Removed feature flag which prevented enabling MetricsSettings.EnableClientMetrics MM-58823.

    • Added a page load time to the client performance metrics MM-58359.

    • Fixed web app performance reports being marked as outdated after the user’s computer woke up from sleep MM-58772.

    • Increased range of LCP metrics and Load Event End metrics that can be measured MM-59033.

    • Fixed an error caused by performance telemetry when using Firefox with beacon.enabled set to false MM-58777.

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

  • 9.9.0, released 2024-06-14

    • Original 9.9.0 release.

Compatibility#

  • Updated minimum macOS version to 12+ and minimum Safari version to 17+.

Important

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

Improvements#

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

User Interface (UI)#

  • Pre-packaged Calls plugin version v0.27.0.

  • Pre-packaged Jira plugin version v4.1.1.

  • Pre-packaged GitLab plugin version v1.9.0.

  • Pre-packaged Zoom plugin version v1.8.0.

  • Updated the default themes to reduce eye strain (particularly on the dark themes).

  • Added UI improvements to the core layout.

  • Improved error text when inviting guests to a team.

  • Increased the visibility Mattermost edition in-product when using the free edition.

  • Added an Unsupported label to the Team/E0 editions in the product menu.

  • Improved the look and feel of the True/False selector in the System Console.

  • Updated the channel header layout to reduce height and simplify the UI.

Administration#

  • Removed safety limit error message in compiled Team Edition and unlicensed Enterprise Edition deployments when message count exceeds 5 million posts.

  • Adjusted safety limit error message to show when users exceed 5,000 in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable. ERROR_SAFE_LIMITS_EXCEEDED.

  • Improved the message length validation step in the mmctl import validate command.

  • Added shell completion to mmctl user active and mmctl user deactivate.

  • Removed support for self-serve purchases of Mattermost Subscriptions in various flows, throughout Cloud and Self Hosted environments.

  • Removed support for self-serve true up review submission in the System Console.

  • Added streaming support to the file attachments import process.

  • Added LDAP job command to mmctl.

  • Made LDAP sync jobs more resilient against errors.

  • Removed the PostPriority feature flag.

  • Improved the error message of NotFound errors in store.

  • Added support for post priority to incoming webhooks and outgoing webhook responses.

  • Added a validation that the payload for an open Interactive Dialog request is valid according to the rules at https://developers.mattermost.com/integrate/plugins/interactive-dialogs/.

  • Unblocked notification calls by using usernames instead of full names in case of a missing user profile.

  • Increased the maximum password limit from 64 to 72 characters (PasswordMaximumLength).

Performance#

  • Added the initial version of new client-side performance metrics to track web app performance and can be monitored in new Grafana board.

  • Added a metric to track time it takes for the right-hand side to load.

  • Improved js memory profile of status’s reducers.

  • When a user receives a new post that is part of a thread from a root post in a channel they are not currently viewing, we do not fetch the complete root post and its thread posts immediately. However, we still store the newly received post. The root post and its thread posts are only fetched when the user navigates to that specific channel.

Bug Fixes#

  • Fixed an issue with aria-label for sidebar channel buttons.

  • Fixed an issue where any remaining unclosed database RPC connections were not closed after a plugin shut down.

  • Fixed an issue where the right-hand side stole the focus when coming back from threads or drafts.

  • Fixed an issue where a proxy link was copied instead of the original image link when copying a post that included an embedded image.

  • Fixed an issue where the user status would incorrectly get stuck to online after the user closed the tab.

  • Fixed an issue where on some servers the user could not see the member count in the Browse Channels dialog.

  • Fixed an issue with inline display of WebP images accessed through the public-link feature.

  • Fixed an issue where it wasn’t clear that the mmctl import process --bypass-upload --local doesn’t work if the server is in High Availability.

  • Fixed an issue where the user status would incorrectly be set to offline without checking for connections in other nodes in an High Availability cluster.

  • Fixed a longstanding issue where the @mention auto-complete could erase post text following the auto-completed @mention.

  • Fixed an issue with status management to avoid missing notifications.

  • Fixed an issue where audit events were not added for OAuth logins.

  • Fixed an issue with the error check in the message export process.

  • Fixed an issue where pasting in the post text box could not always paste without formatting.

  • Fixed some plugin settings with defaults not changing value.

config.json#

New 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 ExperimentalSettings in config.json:

    • Added DisableWakeUpReconnectHandler to disable the wake up on reconnect handler.

  • Removed SelfHostedPurchase setting.

Changes to the Enterprise plan:#

  • Under MetricsSettings in config.json:

    • Added a feature flag and a setting EnableClientMetrics to control new client performance metrics.

    • Added a setting for notification metrics EnableNotificationMetrics.

  • Self-hosted system administrators can now configure all ExperimentalAuditSettings through the user interface in the System Console. Cloud administrators can now change the AdvancedLoggingJSON value for the ExperimentalAuditSettings. This is the only configuration that Cloud administrators are able to adjust. Feature flag ExperimentalAuditSettingsSystemConsoleUI must be enabled in order to leverage this new user interface.

Websocket Event Changes#

  • Changed the semantics of the mattermost_http_websockets_total metric to track all open WebSocket connections, regardless of whether they are authenticated.

  • Added a origin_client label to the mattermost_http_websockets_total Prometheus metric.

Go Version#

  • v9.9 is built with Go v1.21.8.

Open Source Components#

  • Removed @stripe/react-stripe-js and @stripe/stripe-js, and added web-vitals at https://github.com/mattermost/mattermost.

Known Issues#

  • Some Cloud workspaces unexpectedly received emails about license expiration.

  • 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.

Contributors#

Release v9.8 - Feature Release#

  • 9.8.3, released 2024-07-22

  • 9.8.2, released 2024-07-02

    • Mattermost v9.8.2 contains low to high 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 where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged.

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

  • 9.8.1, released 2024-06-03

    • Mattermost v9.8.1 contains low to high 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.

    • Removed a safety limit error message in compiled Team Edition and unlicensed Enterprise Edition deployments when message count exceeds 5 million posts.

    • Fixed an issue with some plugin settings with defaults not changing value.

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

  • 9.8.0, released 2024-05-16

    • Original 9.8.0 release.

Compatibility#

  • Updated minimum required Edge and Chrome versions to 122+.

Important

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

Improvements#

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

User Interface (UI)#

  • Pre-packaged Playbooks version v1.39.3.

  • Pre-packaged GitLab plugin version v1.8.1.

  • Pre-packaged Calls version v0.26.2.

  • Combined Desktop and Mobile notifications in the user settings modal.

  • Added a Don’t Clear option for Do Not Disturb.

  • Enhanced the user interface for channel introductions.

  • Added an ephemeral message for non-team member mentions in channels.

  • Added emoji tooltips on hover in post message.

  • Made the appearance of several tooltips more consistent.

  • Updated theme colors for onboarding tour points.

  • Updated the right-hand side Thread view to use relative timestamps to be more consistent with the global Threads view.

  • Added a total reply count to the right-hand side thread view.

Administration#

  • Added safety limit error message in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable, and message count exceeds 5 million posts. ERROR_SAFE_LIMITS_EXCEEDED.

  • Downloading a support packet is now extensible with plugins. If a plugin can add content to the support packet, it will be displayed in the commercial support modal. Administrators will have the option to include/exclude that from the support package.

  • Upgraded Nodejs to v20.11.

  • Added the backend for Channel Bookmarks (disabled by default). Added Channel Bookmarks permissions to the channel user role and to the channel moderation system.

  • Added Channel Bookmarks permissions to the channel user role and to the channel moderation system.

  • Added progress logs for attachments in bulk exports.

  • Added a System Console option to rebuild Elasticsearch channels indexes.

  • Obfuscated ReplicaLagSettings in the Support Packet.

  • Improved license loading errors.

  • Updated the keycloak docker configs and added a make command.

  • Removed unused IsOAuth field from AppError.

  • bool is now used for license_is_trial in the Support Packet.

  • Bulk export: added functionality to export roles and permissions schemes.

  • A new flag (extract-content) was added to the mmctl import process that allows the server to skip content extraction during the import phase.

API Changes#

  • Added a create channel bookmark endpoint at /api/v4/channels/{channel_id}/bookmarks.

  • Added additional query params to channel endpoints to include channel bookmarks.

  • Added update channel bookmark endpoint at /api/v4/channels/{channel_id}/bookmarks/{bookmark_id}.

  • Added list channel bookmarks endpoint at /api/v4/channels/{channel_id}/bookmarks.

  • Added delete channel bookmark endpoint at /api/v4/channels/{channel_id}/bookmarks/{bookmark_id}.

  • Added update channel bookmark sort order endpoint at /api/v4/channels/{channel_id}/bookmarks/{bookmark_id}/sort_order.

  • Exposed a local-mode only API for reattaching plugins, primarily to facilitate mock-free unit testing.

  • Exposed UpdateUserRoles in pluginapi.

  • Exposed pluginapi.ProfileImageBytes to simplify bot setup from a plugin.

  • For POST /channels, added a validation for display_name to not pass validation if the display name is empty.

Bug Fixes#

  • Fixed an issue with context cancellation for integration requests.

  • Fixed an issue preventing the retrieval of SAML metadata.

  • Fixed an issue causing an empty channel switcher after converting a group message to a private channel.

  • Fixed an issue where System Admins were not allowed to LDAP sync SAML users when SamlSettings.EnableSyncWithLdap was set to true.

  • Fixed an issue with markdown in the AD job status table.

  • Fixed an issue with a control character in the group list modal.

  • Fixed an issue where the auto-complete channels API returned archived channels in response.

  • Fixed a crash issue in the System Console.

  • Fixed an issue where links included in notifications were truncated and not clickable.

  • Fixed using local requests instead of HTTP requests in the flow library.

  • Fixed an issue where support_packet.yaml wasn’t generated even if an error occurred.

  • Fixed an issue where outgoing webhooks did not trigger when using multiple callback URLs.

  • Fixed an issue where it was not possible to clear plugin settings with a default value in the System Console.

  • Fixed an issue where MaxUsersForStatistics wasn’t ignored when generating a Support Packet.

  • Fixed an issue where the EnsureBot function did not recreate the bot if it had been manually deleted.

  • Fixed an issue where users couldn’t look up a user by their ID in the System Console anymore.

  • Fixed an accessibility issue where the focus didn’t go back to the originating button when a modal was closed.

  • Fixed an issue where end users were not allowed to fetch the group members list of groups that allow @-mentions.

config.json#

New setting option 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 FileSettings in config.json:

    • Added AmazonS3UploadPartSizeBytes and ExportAmazonS3UploadPartSizeBytes to control the part size used to upload files to an S3 store.

  • Under ServiceSettings in config.json:

    • Increased the default payload size limit (MaximumPayloadSizeBytes) from 100 kB to 300 kB. Existing servers need to manually update this value.

  • Under ClusterSettings in config.json:

    • Removed unused settings StreamingPort, MaxIdleConns, MaxIdleConnsPerHost and IdleConnTimeoutMilliseconds.

Changes to Professional and Enterprise plans:#

  • Under ExperimentalSettings in config.json:

    • Removed the UseNewSAMLLibrary experimental setting.

Go Version#

  • v9.8 is built with Go v1.21.8.

Known Issues#

  • Status may sometimes get stuck as Away or Offline 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.

Contributors#


Release v9.7 - Feature Release#

  • 9.7.6, released 2024-07-02

    • Mattermost v9.7.6 contains low to high 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 where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged.

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

  • 9.7.5, released 2024-06-03

  • 9.7.4, released 2024-05-15

    • Fixed an issue with context cancellation for integration requests MM-58019.

    • Fixed some plugin settings with defaults not changing value MM-58102.

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

  • 9.7.3, released 2024-04-30

    • Fixed an issue where creating a Direct Message channel with synthetic users failed MM-58019.

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

  • 9.7.2, released 2024-04-25

    • Mattermost v9.7.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.

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

    • Pre-packaged Playbooks version v1.39.3.

    • Increased the default payload size limit (MaximumPayloadSizeBytes) from 100 kB to 300 kB. Existing servers need to manually update this value.

    • Fixed an issue where it was not possible to clear the plugin settings with a default value in the System Console.

  • 9.7.1, released 2024-04-16

    • Fixed an issue with a noisy log entry for permalink post notifications.

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

  • 9.7.0, released 2024-04-16

    • Original 9.7.0 release.

Important

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

Improvements#

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

User Interface (UI)#

  • Added Mattermost AI plugin to pre-packaged plugins.

  • Pre-packaged Calls version v0.25.1.

  • Pre-packaged Playbooks version v1.39.2.

  • Pre-packaged GitHub plugin version v2.2.0.

  • The first emoji is now auto-selected in the emoji picker.

  • Added Markdown support for batched email notifications.

  • Users’ timezone is now used in batched email notifications.

  • Removed a conflicting class (help-text) from the interactive dialog field description to resolve the black text color in the dark theme.

  • Updated the user interface of Team Settings modal.

  • Promoted Simplified Chinese to Beta, and downgraded Hungarian and Spanish languages to Beta.

  • Improved the opening animation of the user settings modal.

Administration#

  • Upgraded @mattermost/client and @mattermost/types to support TypeScript v5.x.

  • Enforced safety limit in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable, and when the count of users who are registered, but not deactivated, exceeds 11,000. ERROR_SAFE_LIMITS_EXCEEDED.

  • Dropped pre-packaged plugins for unsupported OS and architectures.

  • Implemented a new Export Settings page in the System Console to allow Cloud administrators to customize their dedicated export S3 buckets.

  • LDAP job details are no longer shown until the job runs.

  • Added more logging to the NotificationsLog.

  • A message is now logged when a user tries to log in using an incorrect password.

  • Posts from deactivated users are now included in Direct Message channel exports. Also the --include-archived-channels flag is now respected for Direct Message channels.

  • Changed the cache headers for file endpoints to cache privately for 24 hours, instead of not caching at all.

  • Improved the performance of the ElasticSearch indexing job in PostgreSQL installations.

  • Moved following functions from server to public utils:

    • ResetReadTimeout

    • AppendMultipleStatementsFlag

    • SetupConnection

    • SanitizeDataSource

mmctl#

  • mmctl can now be used to download a Support Packet using --local mode.

  • mmctl system ping will now return detailed server status even if the server status is unhealthy.

Bug Fixes#

  • Fixed an issue where the Desktop App login flow would erroneously show the landing page for first time users.

  • Fixed an issue where a right-hand side card was not reloaded when the card body was updated.

  • Fixed an issue where en-AU language selection was not allowed.

  • Fixed an issue with the position of text in the default profile picture.

  • Fixed an issue with the group search to parse the display name.

  • Fixed an issue where items with longer text did not widen the user guide dropdown to its max-width.

  • Fixed an issue where the configuration could not be updated from the System Console in cloud environments.

config.json#

A new setting option was added to config.json. Below is a list of the addition and its default value on install. The setting can be modified in config.json, or the System Console when available.

Changes to all plans:#

  • Under CloudSettings in config.json:

    • Added a new configuration setting Disable (via config.json, or environment variable), default false. When set to true, all requests to the Mattermost Customer Portal from a workspace will be disabled.

Open Source Components#

  • Added stylelint to https://github.com/mattermost/mattermost/.

Go Version#

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

Known Issues#

  • 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.

Contributors#


Release v9.6 - Feature Release#

  • 9.6.3, released 2024-06-03

    • Mattermost v9.6.3 contains low to high 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 some plugin settings with defaults not changing value.

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

  • 9.6.2, released 2024-04-25

    • Mattermost v9.6.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.

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

    • Pre-packaged Playbooks version v1.39.3.

    • Fixed an issue where it was not possible to clear the plugin settings with a default value in the System Console.

  • 9.6.1, released 2024-03-26

    • Mattermost v9.6.1 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.

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

    • Fixed an issue where the configuration could not be updated from the System Console in cloud environments.

  • 9.6.0, released 2024-03-15

    • Original 9.6.0 release.

Compatibility#

  • Updated minimum required Edge and Chrome versions to 120+.

Important

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

Improvements#

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

User Interface (UI)#

  • Pre-packaged Calls version v0.24.0.

  • Pre-packaged GitLab plugin version v1.8.0.

  • Added the Outgoing OAuth Connections integration type.

  • Re-designed the System Console > User Management screen, and added the ability to batch export users in CSV format (Professional and Enterprise plans). On MySQL, users cannot view live results of the batch export in the user interface.

  • Improved the appearance of profile/account menus.

  • Added support for checkbox types in the System Console settings.

  • Added support for WebP image previews in the web app similar to PNG and other image formats.

  • Several pre-packaged plugins were removed.

Administration#

  • Removed some unused Redux actions and reducers, including state.entities.posts.selectedPostId.

  • Limited the number of user preference updates to 10 per call.

  • Clarified that the LDAP profile picture setting is optional.

mmctl#

  • Extended mmctl with support for user preferences.

Bug Fixes#

  • Fixed an issue with switching to a Direct Message channel with a shared channel user (user from another server).

  • Fixed an issue with extra space getting added to code blocks in search results.

  • Fixed an issue where deactivated members were not included in a favorited Direct Message channel export.

  • Fixed an issue where password strength settings wouldn’t be disabled if they were set through environment variables.

  • Fixed an issue where post mentions would grow outside the viewport on small devices.

  • Fixed an issue with draft removal after deleting the post.

  • Fixed a markdown issue where, on some occasions, extra space was found before a list.

  • Fixed an issue where a sender to a custom group would also receive the message notification themselves.

  • Fixed a web app crash when a System Admin clicked on a link to a private channel that they were not a member of.

  • Fixed ChannelHasBeenCreated plugin hook not being called when a group channel was created.

  • Fixed thread notifications so that if a user had Thread Reply Notifications disabled for your account and Automatically follow threads in this channel enabled for a channel, the user wouldn’t receive thread notifications for that channel per global setting.

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 the Enterprise plan:#

  • Under ServiceSettings in config.json:

    • Added EnableOutgoingOAuthConnections configuration setting for Outgoing OAuth Connections integration type.

Open Source Components#

  • Added @floating-ui/react, and removed @floating-ui/react-dom and @floating-ui/react-dom-interactions from https://github.com/mattermost/mattermost/.

Go Version#

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

Known Issues#

  • Users’ initial status is not always loaded correctly MM-56966.

  • 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.

Contributors#


Release v9.5 - Extended Support Release#

  • 9.5.8, released 2024-07-22

  • 9.5.7, released 2024-07-02

    • Mattermost v9.5.7 contains low to high 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 where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged.

    • Added a new configuration setting CloudSettings.Disable (via config.json, or environment variable), default false. When set to true, all requests to the Mattermost Customer Portal from a workspace will be disabled.

    • Fixed an issue where the user status would incorrectly be set to offline without checking for connections in other nodes in an High Availability cluster MM-57153.

    • Fixed an issue where users could not see the member count in the Browse Channels dialog on some servers MM-56266.

    • Increased the maximum length of the Value column of the Preferences table MM-57913.

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

  • 9.5.6, released 2024-06-03

  • 9.5.5, released 2024-05-15

    • Fixed an issue where the user status would incorrectly get stuck to online after the user closed their tab MM-57885.

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

  • 9.5.4, released 2024-04-25

    • Mattermost v9.5.4 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.

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

    • Pre-packaged Playbooks version v1.39.3.

    • Increased the default payload size limit (MaximumPayloadSizeBytes) from 100 kB to 300 kB. Existing servers need to manually update this value.

    • Fixed an issue with context cancellation for integration requests.

    • Fixed an issue where end users were not allowed to fetch the group members list of groups that allow @-mentions.

  • 9.5.3, released 2024-03-26

    • Mattermost v9.5.3 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.

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

    • Improved the performance of the ElasticSearch indexing job in PostgreSQL installations.

  • 9.5.2, released 2024-03-06

    • Mattermost v9.5.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.

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

    • Fixed ChannelHasBeenCreated plugin hook not being called when a group channel was created.

  • 9.5.1, released 2024-02-16

  • 9.5.0, released 2024-02-16

    • Original 9.5.0 release.

Important Upgrade Notes#

  • We have stopped supporting MySQL v5.7 since it’s at the end of life. We urge customers to upgrade their MySQL instance at their earliest convenience.

Important

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

Improvements#

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

User Interface (UI)#

  • Pre-packaged Calls version v0.23.1.

  • Pre-packaged Jira plugin version v4.1.0.

  • Improved the behavior of suggestion boxes when changing the caret position.

  • Changed the time for tomorrow in the Do Not Disturb timer and post reminder to refer to the next day at 9:00am instead of 24hrs from the time of activation.

  • Updated message timestamp tooltips to include seconds.

  • Added a new Wrangler feature to be able to move threads (Experimental). Moving threads requires a Professional/Enterprise license to activate. This feature is not yet recommended for production use. A new feature flag MoveThreadsEnabled was added and is default OFF. Changing this value to ON will enable the experimental Move Threads feature.

  • Applied a wording change for active and activated users in the System Console user list.

  • Applied a wording change for active and activated users in the Team Statistics page.

Administration#

  • Added safety limit error message in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable and count of users who are registered and not deactivated exceeds 10,000. ERROR_SAFE_LIMITS_EXCEEDED.

  • The where field is now rendered in model.AppError only when it’s present.

  • Added Outgoing Oauth implementation Get/List logic.

  • The mmctl bulk import process command in local mode now supports processing an import file without actually uploading it to the server. Simply pass the file path to the import file and the server will directly read from it, and pass the --bypass-upload flag. There is no need to use the import upload command. NOTE: all of this is applicable only in local mode.

  • Added Monthly Active Users (MAU) as part of the true-up report.

  • Prometheus metrics are now available under the Source Available License.

Performance#

  • Optimized createPost performance.

  • Improved the performance of emoji uploads.

  • Made small optimizations in several database calls:

    • App.HasPermissionToChannel

    • getPostsForChannelAroundLastUnread

    • publishWebsocketEventForPermalinkPost

    • countMentionsFromPost

Plugins#

  • Plugins are now allowed to register user settings.

  • Plugins can now register an action in the User Settings section. Plugins can also now disable a section in their User Settings.

  • Included session id in request payload of the WebSocketMessageHasBeenPosted plugin hook.

Bug Fixes#

  • Fixed an issue where the right-hand side stopped getting the focus when navigating from Global Threads or Global Drafts.

  • Fixed a theme issue in the notification settings.

  • Fixed a regression in compliance exports which did not allow the export job to be canceled gracefully on server shutdown.

  • Fixed an error where posts dismissed by a plugin were not properly removed from the view.

  • Fixed an issue where if there were multiple websocket connections from a single user, then in case one connection got removed during a broadcast, there was a possibility that the other good connection would not get the event.

  • Fixed an issue with true-up reports sending active users and not activated users.

  • Fixed an issue where users were not able to navigate through links to private channels they are member of with certain configurations.

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 ServiceSettings in config.json:

    • Added MaximumPayloadSizeBytes to add a limit to the payload size of API endpoints passing in arrays.

  • Added a configuration setting OutgoingIntegrationRequestsDefaultTimeout for integration requests.

Changes to the Professional and Enterprise plans:#

  • Under WranglerSettings in config.json:

    • Added AllowedEmailDomain - a CSV list of strings, where each is an email domain that is allowed to use the feature (e.g. - on community.mattermost.com, mattermost.com would allow staff to move a thread, while non-staff cannot).

    • MoveThreadMaxCount - a number representing the maximum number of posts that can be in a thread for it to be moveable.

    • MoveThreadToAnotherTeamEnable - a boolean value representing whether moving should work across teams.

    • MoveThreadFromPrivateChannelEnable - a boolean value representing whether moving should work from within a private channel.

    • MoveThreadFromDirectMessageChannelEnable - a boolean value representing whether moving should be allowed from within a group message.

Changes to the Enterprise plan:#

  • Under DataRetentionSettings in config.json:

    • Added two new configuration settings, MessageRetentionHours and FileRetentionHours, in order to support setting your global retention time in hours. DataRetentionSettings.MessageRetentionDays and DataRetentionSettings.FileRetentionDays are deprecated but we will continue to use their value until you set something for their hours equivalent. If Days are set then the hours configuration must be 0 and if hours is set then the days config must be 0. We do not support hours for granular retention policies. Due to how our Elasticsearch indexes are stored, Data retention will now also remove elastic search indexes equal to the day of the retention cut-off time.

API Changes#

  • Added a new API endpoint POST /api/v4/posts/<post ID>/move.

  • Added UpdateChannelMembersNotifications plugin API.

  • Added plugin APIs and hooks for accessing the Shared Channels service via plugins.

  • Added a limit to the payload size of API endpoints passing in arrays.

  • Added PreferencesHaveChanged plugin hook.

  • Added GetPreferenceForUser plugin API.

  • Added a new API endpoint GET /api/v4/users/report for system admin user reporting.

  • Added a new API endpoint GET /api/v4/reports/users/count.

Open Source Components#

  • Added @tanstack/react-table and prometheus/client_model to https://github.com/mattermost/mattermost/.

Go Version#

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

Known Issues#

  • User autocomplete no longer stays closed after pressing ESC key MM-56748.

  • 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.4 - Feature Release#

  • 9.4.5, released 2024-03-26

  • 9.4.4, released 2024-03-06

  • 9.4.3, released 2024-02-14

  • 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.3, released 2024-03-06

  • 9.3.2, released 2024-02-14

  • 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.6, released 2024-02-14

  • 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#


Release v9.1 - Feature Release#

  • 9.1.5, released 2024-01-09

    • Mattermost v9.1.5 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.1.5 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.1.4, released 2023-11-29

  • 9.1.3, released 2023-11-13

    • Mattermost v9.1.3 contains low to high 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.1.3 contains no database or functional changes.

    • Pre-packaged Playbooks plugin version v1.39.1.

    • Fixed an issue where the About Mattermost dialog reported an incorrect server version.

  • 9.1.2, released 2023-11-06

  • 9.1.1, released 2023-10-27

    • Mattermost v9.1.1 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.

    • Pre-packaged Focalboard plugin v7.11.4.

    • Mattermost v9.1.1 contains the following functional changes:

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

      • Added a restriction to the mobile Oauth / SAML redirection to match the NativeAppSettings.AppCustomURLSchemes configuration setting.

  • 9.1.0, released 2023-10-16

    • Original 9.1.0 release

Important Upgrade Notes#

  • Improved performance on data retention DeleteOrphanedRows queries. See the Important Upgrade Notes for notes on a new migration that was added. Removed feature flag DataRetentionConcurrencyEnabled. Data retention now runs without concurrency in order to avoid any performance degradation. Added a new configuration setting DataRetentionSettings.RetentionIdsBatchSize, which allows admins to to configure how many batches of IDs will be fetched at a time when deleting orphaned reactions. The default value is 100.

  • Minimum supported Desktop App version is now v5.3. OAuth/SAML flows were modified to include desktop_login which makes earlier versions incompatible.

Important

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

Compatibility#

  • Updated Chromium minimum supported version to 116+.

Highlights#

Never Miss Group Messages Again#

Convert Group Messages to Private Channels#

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

Improvements#

User Interface (UI)#

  • Added a Cancel button to the Delete category modal.

  • Added the ability to resize the channel sidebar and right-hand sidebar.

  • Added two new filtering options (show all channel types and show private channels) to the Browse channels modal.

  • Pre-packaged GitLab plugin version v1.7.0.

  • Pre-packaged Calls plugin version v0.20.0.

  • Pre-packaged Playbooks version v1.39.0.

  • Added additional reaction options when viewing threads or messages when the sidebar is larger than its minimum width.

  • Added a link to notification documentation in the Notification Settings modal.

  • Updated the post textbox measurement code to be more reliable.

  • The /invite slash command now supports custom user groups.

  • Re-enabled the remote marketplace functionality, when configured as per PluginSettings.EnableRemoteMarketplace documentation.

Administration#

  • Added mattermost-plugin-api into the mattermost GitHub repository.

  • Updated the public server module version to v0.0.9.

  • Added 2 new URL parameters to GET /api/v4/groups: include_archived and filter_archived. Added the ability to restore archived groups from the user groups modal.

  • Added file storage information to the support package.

  • A user_id is now included in all HTTP logs (debug level) to help determine who is generating unexpected traffic.

  • Added new URL parameter to GET /api/v4/groups and GET /api/v4/groups/:group_id. include_member_ids will add all the members user_ids to the group response objects. You can now also add group members to a channel, any members that are not part of the team can be added to the team through this flow and subsequently added the channel.

Plugin Changes#

  • Added new frontend plugin extension point for the new messages separator bar.

  • Added a new plugin extensibility point to add actions to the code blocks.

  • Added the plugin hook UserHasBeenDeactivated.

  • Added a new server side plugin API method to set the searchable content for file info (SetFileSearchableContent). The MessageHasBeenPosted plugin hook is now executed after the attachments are linked to the post.

Bug Fixes#

  • Fixed keyboard support for the left-hand side channel menu, the left-hand side category menu, and the post dot menu.

  • Fixed display name in the comment_on component.

  • Fixed an issue with keyboard support for some menus with submenus.

  • Fixed an issue with disappearing punctuation when following a group mention.

  • Fixed an issue where compliance export jobs were not able to start after disabling and enabling the compliance export.

  • Fixed a potential read after write issue when loading a license.

  • Fixed the API to block any changes to direct and group messages names, display name, or purpose.

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 ServiceSettingsDefaultGfycatAPISecret and ServiceSettingsDefaultGfycatAPIKey configuration settings.

  • Under TeamSettings in config.json:

    • Added a new config setting EnableJoinLeaveMessageByDefault that sets the default value for UserSetting, ADVANCED_FILTER_JOIN_LEAVE.

  • Under DisplaySettings in config.json:

    • Added a setting MaxMarkdownNodes to limit the maximum complexity of markdown text on mobile.

Changes to Enterprise plan:#

  • Under DataRetentionSettings in config.json:

    • Added a new configuration setting RetentionIdsBatchSize, which allows admins to to configure how many batches of IDs will be fetched at a time when deleting orphaned reactions. The default value is 100.

API Changes#

  • Added the X-Forwarded-For request header to the audit stream for all Rest API calls.

  • Added API endpoint POST /api/v4/user/login/desktop_login. Modified OAuth/SAML flows to include desktop_login where applicable.

  • Added new API endpoint GET /api/v4/channels/<channel-id>/common_teams to fetch list of teams common between members of a group message.

  • Added new API endpoint POST /api/v4/channels/<channel-id>/convert_to_channel to convert a group message to a private channel.

  • Added a new MessageHasBeenDeleted hook to the plugin API.

  • Moved the request package into the public shared folder.

Go Version#

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

Known Issues#

  • Converting a group message to a channel should show an error “A channel with that name already exists on the same team” for duplicate channel names MM-54713.

  • Marking a group message as unread doesn’t resurface the numbered notification badge MM-54778.

  • Thread/posts jump when switching to and from preview mode MM-54758.

  • Desktop UI doesn’t show all content when the right-hand side thread is opened MM-54696.

  • Left-hand side resize option overrides the Browse/Create Channel menu if To-Do plugin is installed MM-54367.

  • 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.0 - Major Release#

  • 9.0.5, released 2023-11-29

  • 9.0.4, released 2023-11-13

    • Mattermost v9.0.4 contains low to high 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.0.4 contains no database or functional changes.

    • Pre-packaged Playbooks plugin version v1.39.1.

    • Fixed an issue where the About Mattermost dialog reported an incorrect server version.

  • 9.0.3, released 2023-11-06

  • 9.0.2, released 2023-10-27

    • Mattermost v9.0.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.

    • Pre-packaged Focalboard plugin v7.11.4.

    • Mattermost v9.0.2 contains the following functional changes:

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

      • Added a restriction to the mobile Oauth / SAML redirection to match the NativeAppSettings.AppCustomURLSchemes configuration setting.

  • 9.0.1, released 2023-10-06

  • 9.0.0, released 2023-09-15

    • Original 9.0.0 release

Important Upgrade Notes#

  • Removed the deprecated Insights feature.

  • Mattermost Boards and various other plugins have transitioned to being fully community supported. See this forum post for more details.

  • The channel_viewed websocket event was changed to multiple_channels_viewed, and is now only triggered for channels that actually have unread messages.

Important

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

Highlights#

Dev/Sec/ChatOps in Strict Security Environments with Jira, Confluence, and Mattermost#

Air-Gapped, Edge-Ready Generative AI with Defense Unicorn’s LeapfrogAI#

AI-Accelerated Collaboration#

  • Mattermost partner Mobius Logic has enhanced the MS Teams Connector for the Microsoft 365 platform by embedding Mattermost directly inside Microsoft Teams.

MLOps and Secure Federation with Customer Compliance#

Improving Your Organization’s Core Collaboration#

  • To optimize the core platform experience, we are reinforcing the fundamentals to ensure Mattermost continues being resilient, stable, and best-in-breed for your critical operations.

Improvements#

User Interface (UI)#

  • The number of channel members is now shown in the Browse channels modal.

  • An error is now displayed if a post edit history fails to load.

  • Added functionality to bulk mark a whole channel category as read.

  • Removed Boards product tour code.

  • Replaced Gfycat with Giphy in the gif picker.

  • Pre-packaged Calls version v0.19.0.

  • Updated Focalboard plugin version to 7.11.3.

  • Pre-packaged Playbooks version 1.38.1.

  • Upgraded prepackaged Zoom plugin to v1.6.2.

  • Upgraded prepackaged Antivirus plugin version to 1.0.0.

Administration#

  • API examples are now updated to reflect latest Go API conventions, deprecating older code samples.

  • Updated the public server module version to v0.0.8.

  • Added a Post Action plugin hook to allow plugins to register new items in the post menu.

  • Added a Post Editor Action plugin hook to allow plugins to register new items in the post editor menu.

  • Improved logging on plugin initialization, activation, and removal.

  • Removed the deprecated ManifestExecutables struct.

  • Removed the deprecated UserAuth.Password field.

  • Remote users are no longer counted as part of the license.

  • Improved data retention logs.

  • Removed /opengraph endpoint as it was unused.

  • Transitionally prepackaged plugins are now installed to the filestore for continuity when a future release stops prepackaging those plugins.

  • Removed the deprecated Manifest.RequiredConfig field.

  • Added a NotificationWillBePushed plugin hook invoked before the push notification is processed and sent to the notification service. Plugins may modify or reject the push notification.

  • Added a SendPushNotification plugin api method which allows plugins to send push notifications to a specific user’s mobile sessions.

  • Disabled PluginSettings.EnableRemoteMarketplace functionality.

Bug Fixes#

  • Fixed the error returned by PUT /api/v4/channels/{channelid} when the provided name already existed in the team.

  • Fixed an issue where CRLF line endings passed to mmctl commands were not being stripped from commands.

  • Fixed an issue where text copied from Microsoft OneNote is pasted as an image.

  • Fixed an issue preventing successful activation of trial licenses.

  • Fixed an issue where a custom group wouldn’t get marked as a mention if it was not part of the webapp’s local state.

  • Fixed an issue with the in-product marketplace theming.

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 ServiceSettings in the config.json:

    • Added GiphySdkKey to replace Gfycat with Giphy in the gif picker.

Go Version#

  • v9.0 is built with Go v1.19.5.

Open Source Components#

  • Added @giphy/js-fetch-api and @giphy/react-components to https://github.com/mattermost/mattermost/.

  • Added @react-native/eslint-config, @react-native/metro-config, and @tsconfig/react-native to https://github.com/mattermost/mattermost-mobile/.

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.

  • Google login fails on the Classic mobile apps.

  • 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.

  • The team sidebar on the desktop app does not update when channels have been read on mobile.

  • 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#