Mattermost v12 upgrade

Mattermost v12.0 raises platform floors, changes the web client framework and widens the message column. This page covers what to confirm, back up and test before moving a self-hosted server to v12.0.

On this page

Mattermost v12 upgrade: what changes and what to confirm first

Do not replace the server binary until your database, operating system and search backend meet the v12.0 floors. Mattermost v12.0 requires PostgreSQL 15 or later, its binaries require glibc 2.34 or later, and OpenSearch 1.x is no longer a supported search backend. If any of these sits below the floor, the work becomes prerequisite upgrades first and the server change second. PostgreSQL 14 and earlier must be upgraded before the server, and v12.0 drops RHEL 7 and RHEL 8, which v11.11 was the last release to support. For a team running its own server, the question is less about the release date and more about whether the surrounding stack can be moved in a planned order.

The release calendar determines how long you can stay where you are. Mattermost v11.11 was released on 2026-09-16 with support ending 2026-12-15, and v12.0 was released on 2026-10-16 with support ending 2027-01-15. Mattermost v11.7 is the current Extended Support Release, released on 2026-05-15 with support ending 2027-05-15, and the previous ESR, v10.11, reached end of life on 2026-08-15. A team on v11.11 has a support window that closes in late 2026, while a team on v11.7 has more time but still needs a dated plan for leaving that line. Set these dates against your change calendar, freeze periods and the time your database and platform teams need for their own prerequisites.

Do not assume an upgrade path from your current version. Mattermost documents the supported sequence in its important upgrade notes, and that page is the reference for whether any intermediate version must be installed before v12.0. Confirm the path from your exact running version, including whether you are on an ESR, and record the page reference and the date you checked it in your change record. Ask the notes which database migrations run at startup, because those affect cutover duration and determine whether you need a restorable backup taken immediately before the change.

Before scheduling the change, inventory each node and dependency. Record the PostgreSQL major version, the glibc version in every base image or host, the search backend and its version, and every plugin and custom build in use. v12.0 includes a database migration that raises the maximum message length from 16,383 to 262,144 characters by widening the message column, so size the migration window on a restored copy of your production database. Web app plugins that were not rebuilt for v12.0 may have activation suppressed, and the built-in Slack import API and CLI were removed, so confirm whether any of your processes depend on them. These checks decide whether the upgrade is a short maintenance window or a multi-stage project.

Which changes in v12.0 affect your deployment

This table lists the v12.0 changes most likely to block or delay an upgrade, with the impact of each and the action your team can start now. Read the impact column first to see which items apply to your current platform, then work the actions in order, since database and operating system floors must be met before the server upgrade. Treat the message length migration as a data job to plan, not a routine step.

ChangeImpactAction needed
PostgreSQL 15 or later requiredServers on PostgreSQL 14 or earlier cannot run v12.0 until the database is upgradedInventory database versions and upgrade each instance to PostgreSQL 15 or later before the server upgrade
glibc 2.34 or later for binariesHosts with older glibc cannot run v12.0 binaries, and RHEL 7 and RHEL 8 are no longer supportedCheck glibc on each host and replace or rebuild RHEL 7 and RHEL 8 hosts on a supported OS. v11.11 was the last release supporting them
OpenSearch 1.x no longer supportedDeployments using OpenSearch 1.x for search lose a supported search backendConfirm the supported OpenSearch versions in the upgrade notes, then upgrade the cluster and reindex if the notes require it
Message length raised from 16,383 to 262,144 charactersA database migration widens the message column, and its run time grows with the size of the message tablePlan a data job: rehearse the migration on a copy of production, measure its duration, and book a maintenance window
React 19 web and desktop appsWeb app plugins not rebuilt for v12.0 may have activation suppressed after the upgradeInventory installed plugins, rebuild or obtain updated versions for React 19, and test each one in staging
Built-in Slack import API and CLI removedScripts, runbooks or migration jobs that call the removed API or CLI will failReplace them with the Slack migration path Mattermost documents, and rebuild any automation that depends on the old API

Which platform floors block v12.0 before the server starts

Three platform floors decide the order of work before any Mattermost server binary changes: the PostgreSQL version, the glibc version on the operating system, and the search backend. Mattermost v12.0 requires PostgreSQL 15 or later, and PostgreSQL 14 and earlier must be upgraded before the server. The operating system comes next because v12.0 binaries require glibc 2.34 or later. A host that cannot provide that glibc version cannot run the binary at all, so an OS problem blocks the server change just as firmly as a database problem does. The database and operating system work therefore comes first, the search backend is planned alongside it, and the server upgrade follows last.

Start with an inventory of every node that runs the application and of the database host. On the database, connect with psql and run SELECT version(); or psql --version to confirm the major version, noting that the server version matters more than the client tool. On each application node, run ldd --version and read the glibc version from the first line, then run cat /etc/os-release to record the OS family and release. Record these values per host in a table, because clustered deployments often have nodes that were built at different times. If you run the server in containers, confirm with the official notes whether your image base changes which glibc the binary uses, since the host check alone may not answer that question.

If any node reports RHEL 7 or RHEL 8, that node cannot run v12.0. Mattermost v12.0 drops both releases, and v11.11 was the last release that supports them. Staying on v11.11 is a valid interim position, but v11.11 support ends on 2026-12-15, so it is a bridge with a deadline rather than a long-term target. The practical path is to plan replacement nodes on an operating system release that provides the required glibc version, build them, and move the application onto them before the v12.0 change. Ask your vendor or your Mattermost contact to confirm which OS releases meet the floor, because that list is maintained in the official notes and should be checked against your own build standard.

Mattermost v12.0 no longer supports OpenSearch 1.x as a search backend, so any deployment that depends on OpenSearch 1.x needs a decision before the server change. First, confirm the search backend name and exact version in use, including whether any search replicas or indexes depend on it. Then choose between upgrading OpenSearch to a version the official notes list as compatible or replacing the backend, and schedule that work as its own change with its own test and rollback plan. Do not assume that a newer OpenSearch release is automatically accepted. Confirm the exact compatible versions in the official upgrade notes for v12.0, and treat that document as the authority for any version number in this plan.

What to back up and inventory before the v12 upgrade

Five items need to be in place before the upgrade starts. Together they let you restore the Mattermost server to its current state, test v12.0 against the same versions and data you run in production, and know what each integration depends on. Work through them in order, and record an owner and a completion date for each.

Verified PostgreSQL backup and tested restore

Take a fresh PostgreSQL backup of the Mattermost database immediately before the upgrade, and store it outside the server hosts. A backup that has never been restored is an assumption, so restore it into a scratch database and confirm that users, channels, posts and file metadata load and that a test server starts against it. The v12.0 database migration widens the message column, so keep the pre-upgrade copy until the upgrade is verified. Record the PostgreSQL version of the backup, since v12.0 requires PostgreSQL 15 or later.

File storage location and its own snapshot

Identify where uploaded files live: Amazon S3, an S3-compatible service or a NAS. The database stores file references, not the files, so take a snapshot or independent backup of that store as well. Confirm the bucket or share is reachable from every application node. A high availability cluster needs shared file storage mounted on each node, and local file system storage is not valid for it and risks corrupting files. On a single server using local disk, back up that directory with the same rigor as the database.

Inventory of plugins, integrations and bots

List every installed plugin with its version, every custom integration, slash command and bot, and the owner who can answer for each one. Flag web app plugins that have not been rebuilt for React 19, because v12.0 may suppress their activation. Note any script or tool that depends on the Slack import API or its CLI, both removed in v12.0. Owners should confirm whether each item still serves a purpose, which narrows the test scope and identifies items that need rebuilding before the cutover.

Staging environment that matches production

Build a staging environment that mirrors production for PostgreSQL, operating system, search backend and file storage. Check the operating system against the glibc 2.34 floor, since v12.0 binaries drop RHEL 7 and RHEL 8, and confirm that no OpenSearch 1.x instance is in use, because it is no longer a supported search backend. Restore the production backup into staging, run the upgrade there first, and test sign-in, file upload and download, search and each plugin. Where possible, keep staging on the same network path and identity provider as production.

Configuration and deployment manifest export

Export the active configuration as config.json, with secret values moved to your secret store, and export the deployment definitions: Helm values, Kubernetes manifests or container definitions. Compare the export with the v12.0 upgrade notes before changing any setting. Store the export in version control so the pre-upgrade state can be restored and compared later. Confirm that database connection, file storage and SSO settings are included, since the server cannot start correctly without them.

Upgrade sequence for Mattermost v12.0 with rollback points

This sequence moves a self-hosted Mattermost deployment to v12.0 in an order that keeps a restore point before each change. Each step names the check that must pass before the next one starts and the rollback option that remains if it fails.

  1. Confirm the current version and supported path

    Your team records the running server version, database version, operating system, search backend and plugin list for every node. Compare this inventory with the important upgrade notes for v12.0, and confirm with Mattermost which upgrade path applies to your starting version. The step is done when the inventory is signed off and each gap is logged as a work item. No rollback is needed yet because nothing has changed, so this inventory becomes the reference state you return to if a later step stalls.

  2. Upgrade PostgreSQL in staging, then production

    Take a full backup of the staging database, then upgrade it to PostgreSQL 15 or later. Confirm that the Mattermost server starts, migrations report no errors, and a test user can sign in and post. Repeat the same sequence in production during an agreed window, starting with a fresh backup. Rollback point: restore the pre-upgrade backup into the previous database version, or revert the database version where the backup method allows it. Confirm that restore path with your database team before you begin.

  3. Move nodes to a supported operating system

    Each application node needs glibc 2.34 or later, because v12.0 binaries depend on it. Rebuild or replace nodes on a supported Linux distribution, and check the glibc version on every node. Note that v12.0 drops RHEL 7 and RHEL 8, and v11.11 was the last release supporting them. Run the v12.0 binary on one staging node to confirm it starts. Rollback point: keep the previous node image or snapshot until the cluster is fully upgraded, so the previous binary can run on the previous operating system.

  4. Replace or upgrade OpenSearch 1.x

    OpenSearch 1.x is no longer a supported search backend in v12.0. If your deployment uses it, decide whether to move to a supported OpenSearch release or a different supported backend, and confirm the choice with Mattermost documentation. Reindex in staging and run test queries against known messages and files. Include the search index in your backup plan, because rebuilding it can take time. Pass check: search returns the expected results. If search is not used, record that and skip this step. Rollback point: keep the 1.x cluster and its snapshot available until search passes in production.

  5. Rebuild and test plugins against v12.0

    The web and desktop apps are built on React 19 from v12.0, so web app plugins must be rebuilt against this release. Plugins not rebuilt may have activation suppressed. Inventory each plugin, rebuild it, and load it on a staging server running v12.0. Also check that scripts and runbooks do not depend on the Slack import API or CLI, which were removed, and move them to the current migration path. Pass check: each plugin activates and its features work for a test user. Rollback point: disable a failing plugin while the core upgrade proceeds, or reinstate the previous binary if the core is affected.

  6. Run the message column migration in staging

    v12.0 includes a database migration that raises the maximum message length from 16,383 to 262,144 characters by widening the message column. Run it first on a restored copy of production data in staging. Record how long the migration takes and how much database load it generates, so the production window rests on measured results. Pass check: the migration completes without errors, row counts match before and after, and a message at the new maximum length saves and displays correctly. Rollback point: restore the backup taken before the rehearsal. Do not schedule the production run until this rehearsal passes.

  7. Upgrade one node, then roll out to the cluster

    Upgrade the server on one production node, or on a staging copy first. Confirm with Mattermost whether mixed-version operation is supported before running upgraded and previous nodes side by side. Watch logs for database and plugin errors, and run the health and configuration checks your team defines. Pass check: the upgraded node starts, passes those checks, and handles test traffic for an agreed observation period. Then move the remaining nodes to v12.0 one at a time. Rollback point: reinstate the previous binary on the failed node, and restore from backup only where database changes cannot be reversed.

  8. Verify logins, posting, files, search and integrations

    Run a scripted set of checks on the upgraded cluster using test accounts for each authentication method in use, including SSO if configured. Confirm that sign-in works, a message posts and displays, a file uploads and downloads from shared storage, search returns the test content, and each integration sends and receives data. Record the results and obtain sign-off from the business owner. Pass check: every test passes and logs show no errors during the test period. Rollback point: if a check fails and cannot be fixed, reinstate the previous binary on all nodes, and restore from backup only where database changes cannot be reversed.

How the message column migration affects database size and downtime

Mattermost v12.0 includes a database migration that widens the message column so the maximum message length rises from 16,383 to 262,144 characters. For most teams the first question is what this does to database size. Longer allowed messages do not fill the table on their own, because only messages users actually post at greater length consume the extra space. The migration itself changes the column definition on a table that holds your full chat history, so its effect on storage, locking and run time depends on how PostgreSQL handles that change for your specific column type and version. Confirm the exact column change and any table rewrite behavior in the v12.0 upgrade notes before you estimate anything for your environment.

The migration runs against the production database as part of the upgrade, so downtime is set by how long it takes on your data. Duration depends on table size, the number of stored messages, the disk throughput and memory of the database server, and whether other load competes for locks during the change. No duration is given here, so measure it. Restore a recent production backup to a staging server with comparable data volume, including your largest channels and your biggest posts table. Run the full upgrade path on that copy, record elapsed time for each step, and repeat the run so you see the spread of results, including a slower run, rather than relying on one timing.

Set checks before and after the migration so you can tell a slow run from a failed one. Before the upgrade, record the size of the posts table and its indexes, row counts, and confirm that a backup is verified by restoring it at least once. After the migration, compare table and index sizes with that baseline, confirm that no indexes were left invalid, and run a set of known searches to check that results match. If you use an external search backend, confirm that its index still agrees with the database for the channels you sampled. Finally, pull a sample of messages that were close to the old 16,383 character limit and confirm they display, edit and export correctly in the web, desktop and mobile clients.

The remaining decision is whether to schedule a maintenance window. Add the measured staging duration to the time needed for the backup, the upgrade steps and the post-upgrade checks, then compare that total with when your users are active across time zones. Ask Mattermost and your implementation partner to confirm whether the migration blocks reads and writes for its full duration, and whether a high availability cluster can be upgraded one node at a time. If the migration must run in a single pass, announce the window with a defined rollback point and name the person who can decide to restore the backup if checks fail. Record the decision, its reasons and the measured timings in the change ticket so the record matches what happened.

What makes a v12 upgrade take longer

This table lists the factors that most often lengthen a move to Mattermost v12.0 and what to measure for each one. Read each row against your own environment before estimating effort, because several drivers compound when they occur together. Teams with many plugins, a large message history and air-gapped hosts usually need the most lead time.

DriverWhy it mattersWhat to measure
Custom and third-party pluginsWeb app plugins not rebuilt for React 19 may have activation suppressed in v12.0, so each one needs a rebuild and retest.Plugin count, whether each is custom or third party, and whether a React 19 build exists from its maintainer.
Database size and message historyv12.0 widens the message column from 16,383 to 262,144 characters, and that migration runs across existing history.Row count and disk size of the message tables, plus timed migration and backup runs on a copy of production.
Node count and high availabilityHA clusters need shared file storage mounted on every node, and each node must be upgraded in a planned order.Number of application nodes, whether HA is licensed and in use, and the type of shared file storage.
OS and PostgreSQL upgrades firstv12.0 binaries require glibc 2.34 or later and PostgreSQL 15 or later, so older hosts and databases must change before the server.Current OS release on each host, current PostgreSQL major version, and the number of upgrade steps still required.
OpenSearch and search replicasOpenSearch 1.x is no longer a supported search backend, and search replicas must be checked against the version you move to.OpenSearch version in use, number of search replicas, and whether an index rebuild is needed (confirm with Mattermost).
Slack import pathThe built-in Slack import API and CLI were removed, so any pending Slack import must follow the documented export and mmetl route.Whether any Slack import is still pending, its data volume, and the integrations that must be rebuilt because Slack exports omit them.
Staging validation and integrationsBots, integrations and SSO connections need retesting after the React 19 and server changes, and each adds test cases.Counts of integrations, bots and SSO connections (SAML, OIDC, AD/LDAP sync), and test cases per item in staging.
Air-gapped environmentPatches, dependencies and container images must cross the boundary by approved transfer, which limits how fast fixes can arrive.Transfer method and approval steps for each import, and whether a local mirror of required packages already exists.

Rebuilding plugins for React 19 and the removed Slack import path

Plan plugin work before you schedule the server upgrade. From v12.0, the Mattermost web and desktop apps are built on React 19, and web app plugins that have not been rebuilt for v12.0 may have their activation suppressed. A plugin can still appear as installed in the admin console while it stops running for users, so the features it adds to the web app may disappear after cutover. Confirm the exact behavior with the plugin's source or vendor for the versions you run, and test every plugin in staging against v12.0 before the production window.

Build a plugin inventory first. For each installed plugin, record its name and version, its source (Mattermost-built, community or in-house), its build status against v12.0, and the named owner who can rebuild or replace it. Include plugins that are currently disabled, because re-enabling them after the upgrade can expose the same React 19 issues. Ask each owner whether a v12.0 build exists and when it was last tested. Community plugins often depend on the maintainer's response, while in-house plugins need a developer with source access and a working build pipeline. Mark each plugin as ready, rebuild required or retire before the staging test window opens.

The built-in Slack import API and CLI were removed in v12.0, so any workflow that depended on them must be redesigned before cutover. Review runbooks, scripts and scheduled jobs that called the import endpoint or ran the import command, and assign an owner to each one. Automation that still references the removed commands will fail at its first run, and the failure may surface late in a migration window with little time to recover. Decide early whether the Slack history move belongs to this upgrade or to a separate project, because the answer changes the sequencing, the staging data set and the approvals you need.

Mattermost documents the Slack migration path in three stages: export the workspace from Slack, convert the export with the mmetl tool into a bulk import JSONL file plus attachments, then upload and process the result with mmctl. Use this path as the basis for the redesigned workflow, and run it end to end against a copy of the v12.0 target before you schedule the production run. Confirm with the Mattermost documentation which mmetl and mmctl versions match your server, how attachments are handled at your expected volume, and how user matching will work for your accounts. Those details decide how much staging time the migration needs.

Integrations are not part of the Slack export and cannot be migrated through this path. Inventory the Slack apps, bots, webhooks and slash commands that teams use, and record which channels and teams depend on each one. Each item needs a named owner and either a reconfigured Mattermost equivalent or a documented retirement. Agree on a cutover message so users know which automations stop and when. Treat the gap as a sponsor decision: a low-use bot may be acceptable to drop, while an integration that routes on-call alerts needs a tested replacement before the Slack source is retired.

How to test the v12 upgrade and roll it back safely

Rehearse the upgrade on a staging environment that matches production in PostgreSQL version, glibc level, search backend, plugin set and deployment topology. The rehearsal is the only place to see the v12.0 database migration running against data that resembles yours, so use a recent copy of production data, handled under your privacy and retention rules.

  • Staging parity: confirm PostgreSQL 15 or later, glibc 2.34 or later, and a search backend other than OpenSearch 1.x, matching production exactly.
  • Data sample: include long messages, deep threads, large attachments and busy channels so the message column migration is timed and checked on realistic volumes.
  • Acceptance cases: test login with local accounts and SSO, create and archive channels, post and reply in threads, upload and download files, and search messages and files.
  • Integrations and notifications: test every plugin and bot, confirm web app plugins rebuilt for React 19 activate, and check notification delivery to email and mobile devices.

Record each case with a pass or fail result and the build number, so the go or no-go decision rests on recorded evidence.

Questions buyers ask before a Mattermost v12 upgrade

How much does a Mattermost v12 upgrade cost and what does the quote include?

The cost follows from the written scope, and DeployOpen does not publish a price list. The quote usually separates scoping, staging, plugin rebuilds, migration runs, testing and cutover support. Scoping builds the inventory of servers, database versions, plugins and integrations. Staging rebuilds a copy of production to rehearse the PostgreSQL 15 move and the operating system changes. Plugin rebuilds cover web app plugins that need React 19 compatibility. Migration runs include the message column change that raises the limit from 16,383 to 262,144 characters, so duration grows with data size. Testing and cutover support close the work. Most of these costs are one-time. Ongoing support is a separate retainer. Ask for each component as its own line, the assumptions behind it, and what your team must supply.

How long does a Mattermost v12 upgrade take and what makes it longer?

No single timeline fits every environment, because duration depends on what must change before the server moves. The main drivers are custom plugins and integrations, data size, node count, and whether the operating system or PostgreSQL must be upgraded first. A host with glibc below 2.34, including RHEL 7 or RHEL 8, needs an operating system change before v12.0 binaries will run. A database on PostgreSQL 14 or earlier must move to PostgreSQL 15 before the server. Large message tables lengthen the column migration. Each additional node in a high availability cluster adds validation work. Ask for a timeline built from your inventory, and confirm whether it includes a staging rehearsal.

What does our team need to provide for a Mattermost v12 upgrade?

Plan to supply a current inventory, system access, verified backups, test users, change windows and named plugin owners before work starts. The inventory should list server and database versions, operating systems, load balancers, file storage, search backend, plugins, integrations and custom code. Access means accounts for the application servers, the database, shared file storage and the Mattermost admin console, under your change control. Confirm that database and file backups exist and that a restore has been tested. Test users from several teams help verify channels, files and integrations in staging. Change windows must cover cutover and rollback. Each plugin needs an owner who can confirm expected behavior and approve rebuilds.

Can our own team upgrade Mattermost to v12 without a partner?

Yes, if your team already has database, operating system and Mattermost operations skills and a staging environment that mirrors production. The work requires someone who can upgrade PostgreSQL to version 15, change operating system images and confirm binaries run on glibc 2.34 or later. It also requires someone who can rebuild plugins for React 19. Staging matters because the message column migration and plugin activation checks should be rehearsed before production. If one skill is missing, a fixed-scope engagement can cover that part while your team keeps ownership of the platform. Review the upgrade notes first, and confirm any skill gaps with your team leads in writing.

Should we wait for Mattermost v12.0 or stay on v11.x?

Stay on v11.x until your inventory confirms that the v12.0 requirements are met and your plugins are accounted for, then plan the move against the support dates. v11.11 was released on 2026-09-16 with support ending 2026-12-15. v12.0 was released on 2026-10-16 with support ending 2027-01-15. The ESR v11.7 was released on 2026-05-15 and supports until 2027-05-15. Decision criteria include PostgreSQL 15 availability, glibc 2.34 or later on every node, removal of OpenSearch 1.x, any dependency on the removed Slack import API, and the rebuild status of each web app plugin for React 19. If an open criterion sits close to a support end date, weigh the options with your team early.

Is an ESR or a monthly release the better target for Mattermost?

The better target depends on how often you want to move the server and how much change your team can absorb per cycle. Mattermost releases a new server version in binary form on the 16th of each month. Monthly releases arrive on that cadence and carry the support windows listed on the releases page. An Extended Support Release is supported for longer, which suits teams that want fewer upgrade cycles. v11.7 is the current ESR with support to 2027-05-15, and the previous ESR, v10.11, reached end of life on 2026-08-15. Choose a monthly release if you need features in v12.0 soon, and an ESR if stability and fewer upgrades matter more. Confirm plan eligibility and release details with Mattermost.

What breaks most often during a Mattermost v12 upgrade?

Most failures trace back to prerequisites that were checked too late. Plugins built on older web app code may have activation suppressed in v12.0, so features can disappear without an obvious error. Scripts that depend on the Slack import API or its CLI will fail because both were removed. Search backends still running OpenSearch 1.x must move before cutover. Hosts with glibc below 2.34 will fail to run the binaries. Clustered deployments that use local file storage risk corrupting files, so confirm shared storage on every node. The long message migration needs disk and time headroom that staging should measure. Verify each item in staging with test users, and keep a tested rollback plan.

How DeployOpen scopes, delivers and supports a Mattermost v12 upgrade

DeployOpen plans the v12 upgrade as a fixed-scope engagement in your own infrastructure, starting with an inventory of your PostgreSQL, operating system, search backend and plugins against the v12.0 requirements. Work moves through a staging rehearsal to production, with the written scope, deliverables and timeline agreed before work starts. Ongoing support is available as a retainer after cutover.

How we scope

  • Inventory of the current Mattermost version, PostgreSQL major version, operating system and search backend.
  • Check against v12.0 floors: PostgreSQL 15 or later, glibc 2.34 or later, and no OpenSearch 1.x backend.
  • Written scope lists every plugin, any Slack import use, and the message column migration plan.

How we build

  • Rebuild or replace web app plugins for React 19, and test activation before production cutover.
  • Upgrade PostgreSQL to version 15 or later before the server, with tested backups taken first.
  • Rehearse the message column migration on a copy of production data and record the runtime observed.

How we hand over

  • Runbook covering pre-upgrade checks, cutover steps, verification and rollback decisions.
  • Version record of OS, PostgreSQL, search backend, and every plugin with its rebuild status.
  • Documented follow-up items for Slack import replacement, if your team used the removed API.

How we support

  • Retainer option covers post-upgrade monitoring, patch application and release planning after cutover.
  • Plan the next move before v12.0 support ends on 2027-01-15, per the Mattermost release page.
  • Agree in the written scope who handles post-cutover questions on plugins and database behavior.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.