[Bug]: Minimize button doesn't work in 5.9.0 on Kubuntu 24.04
Checks before filing an issue
- [X] This issue doesn't reproduce on web browsers (such as in Chrome). If it does, issue reports go to the Mattermost Server repository.
- [X] I have checked the issue tracker and have not found an issue that matches the one I'm filing.
- [X] This issue is not a troubleshooting question. Troubleshooting questions go here: https://forum.mattermost.com/c/trouble-shoot/16.
- [X] This issue is not a feature request. You can request features and make product suggestions here: https://mattermost.com/suggestions/.
- [X] This issue reproduces on the most recent stable version, or the most recent prerelease version of the Mattermost Desktop App.
- [X] I have read the contribution guidelines.
Mattermost Desktop Version
5.9.0
Operating System
Kubuntu 24.04 LTS x86_64
Mattermost Server Version
No response
Steps to reproduce
- Download version 5.9.0 from this location: https://releases.mattermost.com/desktop/5.9.0/mattermost-desktop-5.9.0-linux-x64.tar.gz
- Extract to any location in your home directory - I will reference it as MT_CLIENT_DIR - the real path doesn't matter
- Change permissions to MT_CLIENT_DIR/chrome-sandbox so the Mattermost client does not throw error during startup about incorrect permissions
- sudo chown root: ./chrome-sandbox
- sudo chmod 4755 ./chrome-sandbox
- Start the application using MT_CLIENT_DIR/mattermost-desktop and log in to your server
- Press the "Minimize" button in the top right corner
Expected behavior
The main Mattermost window gets minimized
Observed behavior
The main Mattermost window stays open - it only blinks for a moment
Log Output
#################################################
### main.log
#################################################
[2024-08-20 07:22:42.637] [error] Logger Log level set to: info
[2024-08-20 07:22:42.725] [warn] [App.Initialize] Current working directory is /home/tom, changing into /home/tom/tools/mattermost-desktop-5.8.0-linux-x64
[2024-08-20 07:22:42.798] [info] [App.Config] config.autostart has been configured: false
[2024-08-20 07:22:42.849] [info] [App.Initialize] Autoupgrade disabled: false
[2024-08-20 07:22:42.901] [info] [ServerDropdownView] init
[2024-08-20 07:22:42.939] [warn] [i18nManager] Failed to set new language en-US
[2024-08-20 07:22:42.939] [warn] [i18nManager] Failed to set new language PL
[2024-08-20 07:22:43.044] [info] [App.Config] config.autostart has been configured: false
[2024-08-20 07:22:43.697] [info] [App.Config] config.autostart has been configured: false
[2024-08-20 07:33:48.569] [error] Logger Log level set to: info
[2024-08-20 07:33:48.644] [warn] [App.Initialize] Current working directory is /home/tom, changing into /home/tom/tools/mattermost-desktop-5.8.0-linux-x64
[2024-08-20 07:33:48.701] [info] [App.Config] config.autostart has been configured: false
[2024-08-20 07:33:48.718] [info] [App.Initialize] Autoupgrade disabled: false
[2024-08-20 07:33:48.758] [info] [ServerDropdownView] init
[2024-08-20 07:33:48.806] [warn] [i18nManager] Failed to set new language en-US
[2024-08-20 07:33:48.807] [warn] [i18nManager] Failed to set new language PL
[2024-08-20 07:33:48.917] [info] [App.Config] config.autostart has been configured: false
[2024-08-20 07:33:49.349] [info] [App.Config] config.autostart has been configured: false
[2024-08-20 07:39:56.044] [debug] Diagnostics.run
[2024-08-20 07:39:56.044] [debug] Diagnostics.initializeValues
[2024-08-20 07:39:56.045] [debug] Diagnostics.getStepCount { stepsCount: 12 }
[2024-08-20 07:39:56.045] [debug] Diagnostics sendNotification DiagnosticsStarted
[2024-08-20 07:39:56.045] [info] Diagnostics.executeSteps Started
#################################################
### diagnostics.log
#################################################
[2024-08-20 07:39:56.045] [debug] ConfigureLogger {
filename: 'diagnostics_20-7-2024_7-39-56-45.txt',
pathToFile: 'PATH_20-7-2024_7-39-56-45.txt'
}
[2024-08-20 07:39:56.047] [info] #################### diagnostic-Step-0: logConfig START ####################
[2024-08-20 07:39:56.047] [info] {
stepResult: {
message: 'Step-0 finished successfully',
succeeded: true,
duration: 2
}
}
[2024-08-20 07:39:56.047] [info] #################### diagnostic-Step-0: logConfig END ####################
[2024-08-20 07:39:56.292] [debug] resp.on.end {
data: '{"ActiveSearchBackend":"database" "AndroidLatestVersion":"" "AndroidMinVersion":"" "IosLatestVersion":"" "IosMinVersion":"" "status":"OK"}',
url: 'URL'
}
[2024-08-20 07:39:56.293] [info] #################### diagnostic-Step-1: internetConnection START ####################
[2024-08-20 07:39:56.293] [info] {
stepResult: {
message: 'Step-1 finished successfully',
succeeded: true,
duration: 246
}
}
[2024-08-20 07:39:56.294] [info] #################### diagnostic-Step-1: internetConnection END ####################
[2024-08-20 07:39:56.294] [info] #################### diagnostic-Step-2: configValidation START ####################
[2024-08-20 07:39:56.294] [info] {
stepResult: {
message: 'Step-2 finished successfully',
succeeded: true,
duration: 0
}
}
[2024-08-20 07:39:56.294] [info] #################### diagnostic-Step-2: configValidation END ####################
[2024-08-20 07:39:56.295] [debug] Pinging server: {}
[2024-08-20 07:39:56.509] [debug] resp.on.end {
data: '{"ActiveSearchBackend":"database" "AndroidLatestVersion":"" "AndroidMinVersion":"" "IosLatestVersion":"" "IosMinVersion":"" "status":"OK"}',
url: 'URL'
}
[2024-08-20 07:39:56.510] [info] #################### diagnostic-Step-3: serverConnectivity START ####################
[2024-08-20 07:39:56.510] [info] {
stepResult: {
message: 'Step-3 finished successfully',
succeeded: true,
payload: [
{
id: '1ec39ae5-490d-46ea-9603-b61adb6a69f8',
name: 'MGR',
url: {},
isPredefined: false,
updateURL: '[function] e=>{if(this.url=(0,i.vx)(e),!this.url)throw new Error("Invalid url for creating a server")}',
toUniqueServer: '[function] ()=>({name:this.name,url:this.url.toString(),id:this.id,isPredefined:this.isPredefined})'
}
],
duration: 216
}
}
[2024-08-20 07:39:56.510] [info] #################### diagnostic-Step-3: serverConnectivity END ####################
[2024-08-20 07:39:56.511] [info] #################### diagnostic-Step-4: sessionDataValidation START ####################
[2024-08-20 07:39:56.511] [info] {
stepResult: {
message: 'Step-4 finished successfully',
succeeded: true,
duration: 1
}
}
[2024-08-20 07:39:56.511] [info] #################### diagnostic-Step-4: sessionDataValidation END ####################
[2024-08-20 07:39:56.511] [info] #################### diagnostic-Step-5: BrowserWindowsChecks START ####################
[2024-08-20 07:39:56.512] [info] {
stepResult: {
message: 'Step-5 finished successfully',
succeeded: true,
payload: {
mainWindowVisibilityStatus: [
{ name: 'windowExists', ok: true },
{
name: 'bounds',
ok: true,
data: { x: 230, y: 155, width: 1415, height: 725 }
},
{ name: 'opacity', ok: true, data: 1 },
{ name: 'destroyed', ok: true },
{ name: 'visible', ok: true },
{ name: 'enabled', ok: true },
{
name: 'browserViewsBounds',
ok: true,
data: [ [Object], [Object], [Object], [Object] ]
}
],
webContentsOk: true
},
duration: 0
}
}
[2024-08-20 07:39:56.512] [info] #################### diagnostic-Step-5: BrowserWindowsChecks END ####################
[2024-08-20 07:39:56.513] [info] #################### diagnostic-Step-6: PermissionsCheck START ####################
[2024-08-20 07:39:56.513] [info] {
stepResult: {
message: 'Step-6 finished successfully',
succeeded: true,
payload: {
notificationsSupported: true,
fileSystem: {
downloadsFileAccess: { ok: true },
logsFileAccess: { ok: true }
}
},
duration: 1
}
}
[2024-08-20 07:39:56.513] [info] #################### diagnostic-Step-6: PermissionsCheck END ####################
[2024-08-20 07:39:56.514] [info] #################### diagnostic-Step-7: PerformanceAndMemory START ####################
[2024-08-20 07:39:56.514] [info] {
stepResult: {
message: 'Step-7 finished successfully',
succeeded: true,
payload: {
process: {
creationTime: 1724132027530,
heapStatistics: {
totalHeapSize: 16156,
totalHeapSizeExecutable: 1672,
totalPhysicalSize: 15904,
totalAvailableSize: 4180565,
usedHeapSize: 14490,
heapSizeLimit: 4194048,
mallocedMemory: 283,
peakMallocedMemory: 8254,
doesZapGarbage: false
},
blinkMemory: { allocated: 0, total: 0 },
processMemory: {},
systemMemory: {
total: 32041024,
free: 21898064,
swapTotal: 34316280,
swapFree: 34316280
},
systemVersion: '6.8.0-40-generic',
cpuUsage: { percentCPUUsage: 0, idleWakeupsPerSecond: 0 },
heapSnapshot: { path: 'PATH...xt', success: false },
uptime: 368.056388756,
platform: 'linux',
type: 'browser',
versions: {
node: '20.15.0',
acorn: '8.11.3',
ada: '2.7.8',
ares: '1.28.1',
base64: '0.5.2',
brotli: '1.0.9',
cjs_module_lexer: '1.2.2',
cldr: '44.1',
icu: '74.2',
llhttp: '8.1.2',
modules: '125',
napi: '9',
nghttp2: '1.61.0',
openssl: '1.1.1',
simdutf: '5.2.8',
tz: '2024a',
undici: '6.13.0',
unicode: '15.1',
uv: '1.46.0',
uvwasi: '0.0.21',
v8: 'IPV4-electron.0',
zlib: 'IPV4-motley',
electron: '31.2.1',
chrome: '126.0.6478.127'
},
version: 'v20.15.0'
},
onBattery: false
},
duration: 1
}
}
[2024-08-20 07:39:56.514] [info] #################### diagnostic-Step-7: PerformanceAndMemory END ####################
[2024-08-20 07:39:56.519] [info] #################### diagnostic-Step-8: LogHeuristics START ####################
[2024-08-20 07:39:56.519] [info] {
stepResult: {
message: 'Step-8 finished successfully',
succeeded: true,
payload: {
logLevels: {
silly: 0,
debug: 4,
verbose: 0,
info: 386,
warn: 245,
error: 159
},
percentageOfErrors: 20,
linesCount: 794
},
duration: 4
}
}
[2024-08-20 07:39:56.519] [info] #################### diagnostic-Step-8: LogHeuristics END ####################
[2024-08-20 07:39:56.519] [info] #################### diagnostic-Step-9: Config START ####################
[2024-08-20 07:39:56.519] [info] {
stepResult: {
message: 'Step-9 finished successfully',
succeeded: true,
payload: {
version: 3,
showTrayIcon: true,
trayIconTheme: 'use_system',
minimizeToTray: false,
notifications: {
flashWindow: 0,
bounceIcon: true,
bounceIconType: 'informational'
},
showUnreadBadge: true,
useSpellChecker: true,
enableHardwareAcceleration: true,
autostart: false,
hideOnStart: false,
spellCheckerLocales: [],
darkMode: false,
lastActiveTeam: 0,
downloadLocation: 'PATH',
startInFullscreen: false,
logLevel: 'info',
alwaysClose: true,
autoCheckForUpdates: true,
helpLink: 'URL',
enableServerManagement: true,
enableAutoUpdater: true,
managedResources: [ 'trusted' ],
allowedProtocols: [ 'mattermost', 'ftp', 'mailto', 'tel' ],
useNativeWindow: false,
appName: 'Mattermost'
},
duration: 0
}
}
[2024-08-20 07:39:56.520] [info] #################### diagnostic-Step-9: Config END ####################
[2024-08-20 07:39:56.520] [info] #################### diagnostic-Step-10: CrashReports START ####################
[2024-08-20 07:39:56.520] [info] {
stepResult: {
message: 'Step-10 finished successfully',
succeeded: true,
payload: { pathOfCrashReports: 'PATH', crashReportData: [] },
duration: 0
}
}
[2024-08-20 07:39:56.521] [info] #################### diagnostic-Step-10: CrashReports END ####################
[2024-08-20 07:39:56.521] [info] #################### diagnostic-Step-11: AuthSSO START ####################
[2024-08-20 07:39:56.521] [info] {
stepResult: {
message: 'Step-11 finished successfully',
succeeded: true,
payload: [
{
name: 'rl_page_init_referrer',
expirationDate: 1748377467,
session: false
},
{
name: 'rl_page_init_referring_domain',
expirationDate: 1748377467,
session: false
},
{
name: 'MMAUTHTOKEN',
expirationDate: 1725440234.56725,
session: false
},
{
name: 'MMUSERID',
expirationDate: 1725440234.567339,
session: false
},
{
name: 'MMCSRF',
expirationDate: 1725440234.567356,
session: false
},
{
name: 'rl_anonymous_id',
expirationDate: 1755668168,
session: false
},
{
name: 'rl_group_id',
expirationDate: 1755668168,
session: false
},
{
name: 'rl_group_trait',
expirationDate: 1755668168,
session: false
},
{
name: 'rl_user_id',
expirationDate: 1755668168,
session: false
},
{ name: 'rl_trait', expirationDate: 1755668168, session: false },
{
name: 'rl_anonymous_id',
expirationDate: 1755668169,
session: false
},
{
name: 'rl_user_id',
expirationDate: 1755668169,
session: false
},
{ name: 'rl_trait', expirationDate: 1755668169, session: false }
],
duration: 0
}
}
[2024-08-20 07:39:56.522] [info] #################### diagnostic-Step-11: AuthSSO END ####################
[2024-08-20 07:39:56.522] [info] Diagnostics.executeSteps Finished
[2024-08-20 07:39:56.522] [debug] Diagnostics.getStepCount { stepsCount: 12 }
[2024-08-20 07:39:56.522] [info] #################### Report START ####################
[2024-08-20 07:39:56.522] [info] {
report: [
{
message: 'Step-0 finished successfully',
succeeded: true,
duration: 2,
name: 'diagnostic-Step-0: logConfig',
step: 0
},
{
message: 'Step-1 finished successfully',
succeeded: true,
duration: 246,
name: 'diagnostic-Step-1: internetConnection',
step: 1
},
{
message: 'Step-2 finished successfully',
succeeded: true,
duration: 0,
name: 'diagnostic-Step-2: configValidation',
step: 2
},
{
message: 'Step-3 finished successfully',
succeeded: true,
payload: [
{
id: '1ec39ae5-490d-46ea-9603-b61adb6a69f8',
name: 'MGR',
url: {},
isPredefined: false,
updateURL: '[function] e=>{if(this.url=(0,i.vx)(e),!this.url)throw new Error("Invalid url for creating a server")}',
toUniqueServer: '[function] ()=>({name:this.name,url:this.url.toString(),id:this.id,isPredefined:this.isPredefined})'
}
],
duration: 216,
name: 'diagnostic-Step-3: serverConnectivity',
step: 3
},
{
message: 'Step-4 finished successfully',
succeeded: true,
duration: 1,
name: 'diagnostic-Step-4: sessionDataValidation',
step: 4
},
{
message: 'Step-5 finished successfully',
succeeded: true,
payload: {
mainWindowVisibilityStatus: [
{ name: 'windowExists', ok: true },
{ name: 'bounds', ok: true, data: [Object] },
{ name: 'opacity', ok: true, data: 1 },
{ name: 'destroyed', ok: true },
{ name: 'visible', ok: true },
{ name: 'enabled', ok: true },
{ name: 'browserViewsBounds', ok: true, data: [Array] }
],
webContentsOk: true
},
duration: 0,
name: 'diagnostic-Step-5: BrowserWindowsChecks',
step: 5
},
{
message: 'Step-6 finished successfully',
succeeded: true,
payload: {
notificationsSupported: true,
fileSystem: {
downloadsFileAccess: { ok: true },
logsFileAccess: { ok: true }
}
},
duration: 1,
name: 'diagnostic-Step-6: PermissionsCheck',
step: 6
},
{
message: 'Step-7 finished successfully',
succeeded: true,
payload: {
process: {
creationTime: 1724132027530,
heapStatistics: {
totalHeapSize: 16156,
totalHeapSizeExecutable: 1672,
totalPhysicalSize: 15904,
totalAvailableSize: 4180565,
usedHeapSize: 14490,
heapSizeLimit: 4194048,
mallocedMemory: 283,
peakMallocedMemory: 8254,
doesZapGarbage: false
},
blinkMemory: { allocated: 0, total: 0 },
processMemory: {},
systemMemory: {
total: 32041024,
free: 21898064,
swapTotal: 34316280,
swapFree: 34316280
},
systemVersion: '6.8.0-40-generic',
cpuUsage: { percentCPUUsage: 0, idleWakeupsPerSecond: 0 },
heapSnapshot: { path: 'PATH...xt', success: false },
uptime: 368.056388756,
platform: 'linux',
type: 'browser',
versions: {
node: '20.15.0',
acorn: '8.11.3',
ada: '2.7.8',
ares: '1.28.1',
base64: '0.5.2',
brotli: '1.0.9',
cjs_module_lexer: '1.2.2',
cldr: '44.1',
icu: '74.2',
llhttp: '8.1.2',
modules: '125',
napi: '9',
nghttp2: '1.61.0',
openssl: '1.1.1',
simdutf: '5.2.8',
tz: '2024a',
undici: '6.13.0',
unicode: '15.1',
uv: '1.46.0',
uvwasi: '0.0.21',
v8: 'IPV4-electron.0',
zlib: 'IPV4-motley',
electron: '31.2.1',
chrome: '126.0.6478.127'
},
version: 'v20.15.0'
},
onBattery: false
},
duration: 1,
name: 'diagnostic-Step-7: PerformanceAndMemory',
step: 7
},
{
message: 'Step-8 finished successfully',
succeeded: true,
payload: {
logLevels: {
silly: 0,
debug: 4,
verbose: 0,
info: 386,
warn: 245,
error: 159
},
percentageOfErrors: 20,
linesCount: 794
},
duration: 4,
name: 'diagnostic-Step-8: LogHeuristics',
step: 8
},
{
message: 'Step-9 finished successfully',
succeeded: true,
payload: {
version: 3,
showTrayIcon: true,
trayIconTheme: 'use_system',
minimizeToTray: false,
notifications: {
flashWindow: 0,
bounceIcon: true,
bounceIconType: 'informational'
},
showUnreadBadge: true,
useSpellChecker: true,
enableHardwareAcceleration: true,
autostart: false,
hideOnStart: false,
spellCheckerLocales: [],
darkMode: false,
lastActiveTeam: 0,
downloadLocation: 'PATH',
startInFullscreen: false,
logLevel: 'info',
alwaysClose: true,
autoCheckForUpdates: true,
helpLink: 'URL',
enableServerManagement: true,
enableAutoUpdater: true,
managedResources: [ 'trusted' ],
allowedProtocols: [ 'mattermost', 'ftp', 'mailto', 'tel' ],
useNativeWindow: false,
appName: 'Mattermost'
},
duration: 0,
name: 'diagnostic-Step-9: Config',
step: 9
},
{
message: 'Step-10 finished successfully',
succeeded: true,
payload: { pathOfCrashReports: 'PATH', crashReportData: [] },
duration: 0,
name: 'diagnostic-Step-10: CrashReports',
step: 10
},
{
message: 'Step-11 finished successfully',
succeeded: true,
payload: [
{
name: 'rl_page_init_referrer',
expirationDate: 1748377467,
session: false
},
{
name: 'rl_page_init_referring_domain',
expirationDate: 1748377467,
session: false
},
{
name: 'MMAUTHTOKEN',
expirationDate: 1725440234.56725,
session: false
},
{
name: 'MMUSERID',
expirationDate: 1725440234.567339,
session: false
},
{
name: 'MMCSRF',
expirationDate: 1725440234.567356,
session: false
},
{
name: 'rl_anonymous_id',
expirationDate: 1755668168,
session: false
},
{
name: 'rl_group_id',
expirationDate: 1755668168,
session: false
},
{
name: 'rl_group_trait',
expirationDate: 1755668168,
session: false
},
{
name: 'rl_user_id',
expirationDate: 1755668168,
session: false
},
{
name: 'rl_trait',
expirationDate: 1755668168,
session: false
},
{
name: 'rl_anonymous_id',
expirationDate: 1755668169,
session: false
},
{
name: 'rl_user_id',
expirationDate: 1755668169,
session: false
},
{
name: 'rl_trait',
expirationDate: 1755668169,
session: false
}
],
duration: 0,
name: 'diagnostic-Step-11: AuthSSO',
step: 11
}
]
}
[2024-08-20 07:39:56.523] [info] | index | name | succeeded |
[2024-08-20 07:39:56.524] [info] | --- | --- | --- |
[2024-08-20 07:39:56.524] [info] | 0 | diagnostic-Step-0: logConfig | true |
[2024-08-20 07:39:56.524] [info] | 1 | diagnostic-Step-1: internetConnection | true |
[2024-08-20 07:39:56.524] [info] | 2 | diagnostic-Step-2: configValidation | true |
[2024-08-20 07:39:56.524] [info] | 3 | diagnostic-Step-3: serverConnectivity | true |
[2024-08-20 07:39:56.524] [info] | 4 | diagnostic-Step-4: sessionDataValidation | true |
[2024-08-20 07:39:56.524] [info] | 5 | diagnostic-Step-5: BrowserWindowsChecks | true |
[2024-08-20 07:39:56.524] [info] | 6 | diagnostic-Step-6: PermissionsCheck | true |
[2024-08-20 07:39:56.525] [info] | 7 | diagnostic-Step-7: PerformanceAndMemory | true |
[2024-08-20 07:39:56.525] [info] | 8 | diagnostic-Step-8: LogHeuristics | true |
[2024-08-20 07:39:56.525] [info] | 9 | diagnostic-Step-9: Config | true |
[2024-08-20 07:39:56.525] [info] | 10 | diagnostic-Step-10: CrashReports | true |
[2024-08-20 07:39:56.525] [info] | 11 | diagnostic-Step-11: AuthSSO | true |
[2024-08-20 07:39:56.525] [info] | --- | --- | --- |
[2024-08-20 07:39:56.525] [info] 12 out of 12 steps succeeded
[2024-08-20 07:39:56.525] [info] #################### Report END ####################
[2024-08-20 07:39:56.526] [debug] Diagnostics.showLogFile { pathToFile: 'PATH_20-7-2024_7-39-56-45.txt' }
[2024-08-20 07:39:56.526] [debug] Diagnostics.initializeValues
Additional Information
Minimizing was working fine in all previous versions. The problem started in version 5.9.0.
same issuse
Was able to reproduce this. Looks like for some reason on minimize, the main window is emitting a change in size causing it to refocus itself and thus un-minimize. I think we'll need to add an exception for that so that doesn't happen. Funny enough after you click enough times it worked for me, so the current workaround is to click minimize until it works :P
Created a ticket: https://mattermost.atlassian.net/browse/MM-60233
EDIT: Additional note - only reproduces under X11. Wayland works fine.
Indeed in wayland it works fine. I've upgraded my Kubuntu from 24.04 to 24.10 which uses wayland by default. In that version Mattermost 5.9.0 can be minimized without problems.