[MM-63224] Add incompatible server screen#3348
Conversation
lieut-data
left a comment
There was a problem hiding this comment.
Two thoughts, but non-blocking and will defer to you @devinbinnie.
| export const DEFAULT_ACADEMY_LINK = 'https://academy.mattermost.com/'; | ||
| export const DEFAULT_TE_REPORT_PROBLEM_LINK = 'https://mattermost.com/pl/report-a-bug'; | ||
| export const DEFAULT_EE_REPORT_PROBLEM_LINK = 'https://support.mattermost.com/hc/en-us/requests/new'; | ||
| export const DEFAULT_UPGRADE_LINK = 'https://forum.mattermost.com/t/mattermost-desktop-app-5-11-important-compatibility-notice/22599'; |
There was a problem hiding this comment.
Should we use a permalink here instead?
There was a problem hiding this comment.
@esethna Thoughts? Would be better to set this up now so we can change it later once we want to link to a doc entry.
There was a problem hiding this comment.
Yes for sure, we should pl so we can redirect as needed in the future
| const serverInfo = ServerManager.getRemoteInfo(this.view.server.id); | ||
| if (serverInfo?.serverVersion && semver.lt(serverInfo.serverVersion, '9.4.0')) { | ||
| MainWindow.sendToRenderer(LOAD_INCOMPATIBLE_SERVER, this.id, loadURL.toString()); | ||
| this.emit(LOAD_FAILED, this.id, 'Incompatible server version', loadURL.toString()); | ||
| this.status = Status.ERROR; | ||
| return; | ||
| } |
There was a problem hiding this comment.
Should this logic default to showing the error /unless/ we successfully get the remote info and confirm it's >= 9.4.0? Worried about edge cases with old servers that we won't know about vs. confidence in the server being new enough for this request and check to work reliably.
There was a problem hiding this comment.
Yeah that makes sense, the only thing I worry about is if we somehow don't get the configuration from the API and then they get the incompatible screen on a seemingly working server. I think though if we're somehow ending up not getting that info into the app that would be a different bug we'd want to expose, so let's go your way.
There was a problem hiding this comment.
If we default it to show, what happens if the user is on a spotty connection, is there a chance the version check fails and returns the error screen locking the user out? @devinbinnie
Also for QA, I propose we spot check this on a couple newer release versions to ensure we aren't getting a false positive and displaying the error screen, especially on the v9.5 v9.11 v10.5 ESRs cc// @yasserfaraazkhan
There was a problem hiding this comment.
It would be a very small chance, but easily verifiable via refreshing. I think Jesse's point might cover more cases since it's clear we might have users on much much older versions.
There was a problem hiding this comment.
Should we add to the bullet list to attempt refreshing the app in that case if that would be a troubleshooting step?
There was a problem hiding this comment.
Other than a spotty connection are there other cases where we might show this screen incorrectly sending the user down the wrong path (downgrading) to resolution ?
For example:
- Server is unreachable momentarily
- Server is down for maintenance
etc
Worried we might be showing this screen in way too many cases that result in the user spending energy on unhelpful resolution steps that will make them more frustrated vs a generic error screen
There was a problem hiding this comment.
So to clarify, the only case where we'd be showing this screen is if with the two requests made to the server that check for version and just hit the homepage, if the version check one fails but the homepage one succeeds and is able to load the app. They should happen within milliseconds of each other.
The app makes somewhere around 50 requests to load the app, and if any one of them were to fail, the app would be in a degraded state. I think we might be trying to cover too many potential cases here, and not just focusing on the main issue of the server upgrade issue.
Remember that this needs to go into a patch release, so we want to minimize the amount of checks needed here. I think what we have is more than sufficient and will be plenty robust for all users.
There was a problem hiding this comment.
So to clarify, the only case where we'd be showing this screen is if with the two requests made to the server that check for version and just hit the homepage, if the version check one fails but the homepage one succeeds and is able to load the app.
Got it, thanks
|
@yasserfaraazkhan Going to defer QA since this will be tested with the dot release |
|
Cherry pick is scheduled. |
* [MM-63224] Add incompatible server screen * Fixed issue where init isn't called on no server case * Amend check (cherry picked from commit 6fa5508)



Summary
To help ease the transition for some users on older server versions that have run into compatibility issues with the newest Desktop App version, we have implement a screen with a check for the server version, that will show up when the user tries to use the Desktop App with an older version. This screen also includes a link to a forum post that can help users or system admins upgrade their servers.
Ticket Link
https://mattermost.atlassian.net/browse/MM-63224
Closes #3333
Device Information
This PR was tested on: macOS Sonoma
Screenshots
Release Note