My Android app doesn’t connect to the server as soon as I am in my home wifi, which is a standard vodafone cable internet router. If I switch wifi off it works, on other wifi networks it works as well. Any idea what would cause this?
Deactivating the firewall in the router does not change the issue.
IPv6 possibly? I believe AndroidOS prefers v6 and if there’s an issue falling back to v4…
The only IPv6 related setting in the router is “IPv6 host exposure”. I don’t think that’s what I want or need for this issue.
Is there a way to see logs or something which will help narrow down the issue?
Try:
Requirements:
- For browser tabs: Android 4.0+ and Chrome for Android
- A USB cable to plug in your Android device
- Chrome 32 or later installed on your development machine
Set up:
- Enable USB debugging on your device.
- Navigate to
chrome://inspect/#devices
on your desktop Chrome browser. (Alternatively, to get to the same screen, you can selectChrome menu > Tools > Inspect Devices
) - After connecting, you may see an alert on the device requesting permission for USB debugging from your computer. Tap OK
- Chrome should now display the connected device
- Open up chrome on your Android device and navigate to the page you want to debug/inspect. The page should show up on your desktop browser and you should be able to inspect it.
But: Mattermost in the browser works fine, it’s the App which doesn’t work on the wifi. What would debugging Chrome on the phone help where there is no issue?
You’d be retrieving the logs from the phone.
I don’t undestand how. Did you paste the wrong instructions?
Open up chrome on your Android device and navigate to the page you want to debug/inspect. The page should show up on your desktop browser and you should be able to inspect it.
This will not help me debugging the app and I can’t retrieve logs from apps this way.
I hope this helps: Installed adb
on the desktop. Connected and allowed USB-debugging on phone. ran adb shell ps | grep "mattermost"
to find out process name is called com.mattermost.rn
. Then ran adb logcat | grep com.mattermost.rn
for all log entries containing the string com.mattermost.rn
. I don’t see anything which looks like an error though?
09-05 11:59:45.618 1633 4565 D FreecessController: com.mattermost.rn(10493) is important[12]
09-05 11:59:45.620 10945 11085 D ProfileInstaller: Installing profile for com.mattermost.rn
09-05 11:59:47.431 1633 3819 D SGM:GameManager: identifyForegroundApp. com.mattermost.rn, mCurrentUserId: 0, callerUserId: 0
09-05 11:59:47.431 1633 3819 D SGM:PkgDataHelper: getGamePkgData(). com.mattermost.rn
09-05 11:59:50.625 1633 4565 D FreecessController: com.mattermost.rn(10493) is important[12]
09-05 11:59:55.630 1633 4565 D FreecessController: com.mattermost.rn(10493) is important[12]
09-05 11:59:57.057 1633 6300 V WindowManager: Transition 3949: Set Task{8f6139 #22245 type=standard I=com.mattermost.rn/.MainActivity} as transient-hidden-task, caller=com.android.server.wm.Transition.$r8$lambda$CjoHzkGzNeU_fFxE5qPacUPUYJY:0 com.android.server.wm.Transition$$ExternalSyntheticLambda1.test:0 com.android.server.wm.Task.forAllTasks:4047
09-05 11:59:57.057 1633 6300 V WindowManager: Collecting in transition 3949: Task{8f6139 #22245 type=standard I=com.mattermost.rn/.MainActivity}, caller=com.android.server.wm.Transition.collect:759 com.android.server.wm.Transition.lambda$setTransientLaunch$0:462 com.android.server.wm.Transition.$r8$lambda$CjoHzkGzNeU_fFxE5qPacUPUYJY:0 com.android.server.wm.Transition$$ExternalSyntheticLambda1.test:0 com.android.server.wm.Task.forAllTasks:4047
09-05 11:59:57.058 1633 6300 D ActivityTaskManager: scheduleTopResumedActivityChanged, onTop=false, r=ActivityRecord{3795500 u0 com.mattermost.rn/.MainActivity t22245}, caller=com.android.server.wm.ActivityTaskSupervisor.updateTopResumedActivityIfNeeded:2826 com.android.server.wm.TaskDisplayArea.positionChildTaskAt:567 com.android.server.wm.TaskDisplayArea.positionChildAt:483 com.android.server.wm.Task.moveToFront:6077 com.android.server.wm.Task.moveToFront:5951 com.android.server.wm.ActivityStartController.startExistingRecents:791
09-05 11:59:57.068 683 683 I HoneySpace.TaskListViewModel: Task1 : [id=22245 windowingMode=1 user=0 lastActiveTime=548598952] null, isCoverLauncherTask = false, isLocked = false - com.mattermost.rn]
09-05 11:59:57.079 1633 6300 V WindowManager: Start calculating TransitionInfo based on participants: {Task{8f6139 #22245 type=standard I=com.mattermost.rn/.MainActivity}, TransientLaunchOverlayToken{1acd25a token=android.os.BinderProxy@9c94205}, Task{331e922 #21583 type=recents I=com.sec.android.app.launcher/com.android.quickstep.RecentsActivity}, WallpaperWindowToken{556691c token=android.os.Binder@e818797}, ActivityRecord{ea05337 u0 com.sec.android.app.launcher/com.android.quickstep.RecentsActivity t21583}}
09-05 11:59:57.079 1633 6300 V WindowManager: Final targets: [TransientLaunchOverlayToken{1acd25a token=android.os.BinderProxy@9c94205}, Task{331e922 #21583 type=recents I=com.sec.android.app.launcher/com.android.quickstep.RecentsActivity}, Task{8f6139 #22245 type=standard I=com.mattermost.rn/.MainActivity}]
09-05 11:59:57.082 1633 6300 V WindowManager: {WCT{RemoteToken{8c01c0 Task{8f6139 #22245 type=standard I=com.mattermost.rn/.MainActivity}}} m=TO_BACK f= leash=Surface(name=Task=22245)/@0xce3d4f2 sb=Rect(0, 0 - 1080, 2400) eb=Rect(0, 0 - 1080, 2400) d=0 dim=true inset=Rect(0, 88 - 0, 126)}
09-05 11:59:57.084 1633 1988 V WindowManager: {WCT{RemoteToken{8c01c0 Task{8f6139 #22245 type=standard I=com.mattermost.rn/.MainActivity}}} m=TO_BACK f= leash=Surface(name=Task=22245)/@0xce3d4f2 sb=Rect(0, 0 - 1080, 2400) eb=Rect(0, 0 - 1080, 2400) d=0 dim=true inset=Rect(0, 88 - 0, 126)}
09-05 11:59:57.102 683 683 I HoneySpace.TaskAdapter: attach [position: 0], taskData size: 1, item: ComponentInfo{com.mattermost.rn/com.mattermost.rn.MainActivity}, animReady: 2, firstBindingComplete: 3, view: d810759
09-05 11:59:57.102 683 10931 I HoneySpace.TaskDataRepositoryImpl: Request icon and label, id=22245, iconAndLabel: IconAndLabel(icon=android.graphics.Bitmap@481393c, label=Mattermost), componentKey: com.mattermost.rn/.MainActivity#UserHandle{0}
09-05 11:59:57.103 683 749 I HoneySpace.SALoggingUtils: SA Logging screenID: 500 eventId: 5160 detail: {det=com.mattermost.rn} value: -1
09-05 11:59:57.157 683 10939 I HoneySpace.SuggestedItemsFacade: DPS items : Mattermost, com.mattermost.rn/.MainActivity#UserHandle{0}
09-05 11:59:57.158 683 10939 I HoneySpace.SuggestedItemsFacade: filteredItem : com.mattermost.rn/.MainActivity#UserHandle{0}
09-05 11:59:57.158 683 10939 I HoneySpace.SuggestedItemsFacade: item removed by filter - com.mattermost.rn
09-05 11:59:57.159 1633 6292 V WindowManager: Changing focus from Window{6db3e5e u0 com.mattermost.rn/com.mattermost.rn.MainActivity} to Window{896ce0c u0 com.sec.android.app.launcher/com.android.quickstep.RecentsActivity} displayId=0 Callers=com.android.server.wm.RootWindowContainer.updateFocusedWindowLocked:578 com.android.server.wm.WindowManagerService.updateFocusedWindowLocked:6881 com.android.server.wm.ActivityTaskManagerService.setLastResumedActivityUncheckLocked:6118 com.android.server.wm.ActivityTaskManagerService.setFocusedTask:2769
09-05 11:59:57.173 1633 6292 D WindowManager: updateSystemBarAttributes: displayId=0, win=Window{896ce0c u0 com.sec.android.app.launcher/com.android.quickstep.RecentsActivity}, navColorWin=Window{6db3e5e u0 com.mattermost.rn/com.mattermost.rn.MainActivity}, focusedCanBeNavColorWin=false, behavior=1, appearance=0, statusBarAppearanceRegions=[AppearanceRegion{LIGHT_STATUS_BARS bounds=[0,0][1080,2400]}], requestedVisibilities=-9, from=com.android.server.wm.DisplayPolicy.focusChangedLw:2947 com.android.server.wm.DisplayContent.updateFocusedWindowLocked:4894 com.android.server.wm.RootWindowContainer.updateFocusedWindowLocked:578
09-05 11:59:57.182 1633 6292 D InputDispatcher: Focus left window (0): 6db3e5e com.mattermost.rn/com.mattermost.rn.MainActivity
09-05 11:59:57.206 1446 1446 D SurfaceFlinger: CLIENT | 0xb40000740b606eb0 | 0102 | RGBA_8888 | 0.0 13.0 1080.0 2380.0 | 24 42 1056 2323 | com.mattermost.rn/com.mattermost.rn.MainActivity$_10945#61860
09-05 11:59:57.488 1446 1446 D SurfaceFlinger: CLIENT | 0xb40000740b607b10 | 0102 | RGBA_8888 | 0.0 88.0 1079.0 2274.0 | 216 386 863 1698 | com.mattermost.rn/com.mattermost.rn.MainActivity$_10945#61860
09-05 11:59:57.520 1633 7718 V WindowManager: Setting visibility of Window{6db3e5e u0 com.mattermost.rn/com.mattermost.rn.MainActivity}: false, caller=com.android.server.wm.WindowContainer.sendAppVisibilityToClients:1301 com.android.server.wm.WindowToken.setClientVisible:446 com.android.server.wm.ActivityRecord.setClientVisible:8121 com.android.server.wm.ActivityRecord.postApplyAnimation:6685 com.android.server.wm.ActivityRecord.commitVisibility:6628
09-05 11:59:57.529 1446 1446 I Layer : id=61852 removeFromCurrentState ActivityRecord{3795500 u0 com.mattermost.rn/.MainActivity t22245}#61852 (126)
09-05 11:59:57.529 1446 1446 I Layer : id=61858 removeFromCurrentState 883a632 ActivityRecordInputSink com.mattermost.rn/.MainActivity#61858 (126)
09-05 11:59:57.529 1446 1446 I Layer : id=61859 removeFromCurrentState 6db3e5e com.mattermost.rn/com.mattermost.rn.MainActivity#61859 (126)
09-05 11:59:57.529 1446 1446 I Layer : id=61860 removeFromCurrentState com.mattermost.rn/com.mattermost.rn.MainActivity$_10945#61860 (126)
09-05 11:59:57.529 1446 1446 I Layer : id=61852 addToCurrentState ActivityRecord{3795500 u0 com.mattermost.rn/.MainActivity t22245}#61852 (126)
09-05 11:59:57.529 1446 1446 I Layer : id=61858 addToCurrentState 883a632 ActivityRecordInputSink com.mattermost.rn/.MainActivity#61858 (126)
09-05 11:59:57.529 1446 1446 I Layer : id=61859 addToCurrentState 6db3e5e com.mattermost.rn/com.mattermost.rn.MainActivity#61859 (126)
09-05 11:59:57.529 1446 1446 I Layer : id=61860 addToCurrentState com.mattermost.rn/com.mattermost.rn.MainActivity$_10945#61860 (126)
09-05 11:59:57.530 1446 1446 I Layer : Layer [ActivityRecord{3795500 u0 com.mattermost.rn/.MainActivity t22245}#61852] hidden!! flag(1)
09-05 11:59:57.531 1446 1446 I Layer : Layer [com.mattermost.rn/com.mattermost.rn.MainActivity$_10945#61860] hidden!! flag(1)
09-05 11:59:57.546 1633 6300 V WindowManager: Relayout Window{6db3e5e u0 com.mattermost.rn/com.mattermost.rn.MainActivity}: viewVisibility=8 req=1080x2400 ty=1 d0
09-05 11:59:57.569 10945 10945 D ViewRootImpl@42f132a[MainActivity]: WindowStopped on com.mattermost.rn/com.mattermost.rn.MainActivity set to true
09-05 11:59:57.573 10945 10945 D ConnectivityManager: StackLog: [android.net.ConnectivityManager.unregisterNetworkCallback(ConnectivityManager.java:5076)] [com.bumptech.glide.manager.SingletonConnectivityReceiver$FrameworkConnectivityMonitorPostApi24.unregister(SingletonConnectivityReceiver.java:202)] [com.bumptech.glide.manager.SingletonConnectivityReceiver.maybeUnregisterReceiver(SingletonConnectivityReceiver.java:119)] [com.bumptech.glide.manager.SingletonConnectivityReceiver.unregister(SingletonConnectivityReceiver.java:102)] [com.bumptech.glide.manager.DefaultConnectivityMonitor.unregister(DefaultConnectivityMonitor.java:29)] [com.bumptech.glide.manager.DefaultConnectivityMonitor.onStop(DefaultConnectivityMonitor.java:39)] [com.bumptech.glide.manager.ActivityFragmentLifecycle.onStop(ActivityFragmentLifecycle.java:58)] [com.bumptech.glide.manager.SupportRequestManagerFragment.onStop(SupportRequestManagerFragment.java:209)] [androidx.fragment.app.Fragment.performStop(Fragment.java:3184)] [androidx.fragment.app.FragmentStateManager.stop(FragmentStateManager.java:640)] [androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:320)] [androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112)] [androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1647)] [androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3128)] [androidx.fragment.app.FragmentManager.dispatchStop(FragmentManager.java:3096)] [androidx.fragment.app.FragmentController.dispatchStop(FragmentController.java:295)] [androidx.fragment.app.FragmentActivity.onStop(FragmentActivity.java:525)] [androidx.appcompat.app.AppCompatActivity.onStop(AppCompatActivity.java:257)] [com.mattermost.rn.MainActivity.onStop(MainActivity.kt:46)] [android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1623)] [android.app.Activity.performStop(Activity.java:9236)] [android.app.ActivityThread.callActivityOnStop(ActivityThread.java:5898)] [android.app.ActivityThread.performStopActivityInner(ActivityThread.java:5872)] [android.app.ActivityThread.handleStopActivity(ActivityThread.java:5943)] [android.app.servertransaction.StopActivityItem.execute(StopActivityItem.java:43)] [android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)] [android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:180)] [android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98)] [android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)]
09-05 11:59:57.592 1633 6292 E WindowManager: win=Window{6db3e5e u0 com.mattermost.rn/com.mattermost.rn.MainActivity} destroySurfaces: appStopped=true cleanupOnResume=false win.mWindowRemovalAllowed=false win.mRemoveOnExit=false win.mViewVisibility=8 caller=com.android.server.wm.ActivityRecord.destroySurfaces:6952 com.android.server.wm.ActivityRecord.destroySurfaces:6933 com.android.server.wm.ActivityRecord.activityStopped:7633 com.android.server.wm.ActivityClientController.activityStopped:321 android.app.IActivityClientController$Stub.onTransact:702 com.android.server.wm.ActivityClientController.onTransact:186 android.os.Binder.execTransactInternal:1380
09-05 11:59:57.592 1633 6292 I WindowManager: Destroying surface Surface(name=com.mattermost.rn/com.mattermost.rn.MainActivity$_10945)/@0x7fe701a called by com.android.server.wm.WindowStateAnimator.destroySurface:799 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:472 com.android.server.wm.WindowState.destroySurfaceUnchecked:4201 com.android.server.wm.WindowState.destroySurface:4175 com.android.server.wm.ActivityRecord.destroySurfaces:6952 com.android.server.wm.ActivityRecord.destroySurfaces:6933 com.android.server.wm.ActivityRecord.activityStopped:7633 com.android.server.wm.ActivityClientController.activityStopped:321
09-05 11:59:57.594 1633 1989 D PkgPredictorService-SecIpmManagerServiceImpl: bg information pid:10945 uid:10493 pkgName:com.mattermost.rn
09-05 11:59:57.595 1446 1446 I Layer : Layer::reparent [com.mattermost.rn/com.mattermost.rn.MainActivity$_10945#61860] newParentHandle : null -------------------------
09-05 11:59:57.595 1446 1446 I Layer : id=61860 removeFromCurrentState com.mattermost.rn/com.mattermost.rn.MainActivity$_10945#61860 (123)
09-05 11:59:57.595 1446 1446 I Layer : Layer::reparent [com.mattermost.rn/com.mattermost.rn.MainActivity$_10945#61860] End -------------------------
09-05 11:59:57.600 1446 2797 I SurfaceFlinger: id=61860 Removed com.mattermost.rn/com.mattermost.rn.MainActivity$_10945#61860 (122)
09-05 11:59:57.611 1446 1446 I Layer : id=61860 Destroyed com.mattermost.rn/com.mattermost.rn.MainActivity$_10945#61860
09-05 11:59:58.050 1633 1997 I ActivityManager: Killing 10945:com.mattermost.rn/u0a493 (adj 905): remove task
09-05 11:59:58.051 1633 1997 D ActivityManager: [SD] user menu kill listen remove action name:com.mattermost.rn uid:10493
09-05 11:59:58.146 1633 3561 D ConnectivityService: releasing NetworkRequest [ REQUEST id=18255, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10493 RequestorUid: 10493 RequestorPkg: com.mattermost.rn UnderlyingNetworks: Null] ] (release request)
09-05 11:59:58.146 1633 3561 D ConnectivityService: releasing NetworkRequest [ REQUEST id=18257, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10493 RequestorUid: 10493 RequestorPkg: com.mattermost.rn UnderlyingNetworks: Null] ] (release request)
09-05 11:59:58.146 1633 3561 D ConnectivityService: releasing NetworkRequest [ REQUEST id=18259, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10493 RequestorUid: 10493 RequestorPkg: com.mattermost.rn UnderlyingNetworks: Null] ] (release request)
09-05 11:59:58.147 1633 3561 D ConnectivityService: releasing NetworkRequest [ REQUEST id=18261, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10493 RequestorUid: 10493 RequestorPkg: com.mattermost.rn UnderlyingNetworks: Null] ] (release request)
09-05 11:59:58.153 1633 6297 I WindowManager: WIN DEATH: Window{6db3e5e u0 com.mattermost.rn/com.mattermost.rn.MainActivity}
09-05 11:59:58.153 1633 6297 W InputManager-JNI: Input channel object '6db3e5e com.mattermost.rn/com.mattermost.rn.MainActivity (client)' was disposed without first being removed with the input manager!
09-05 11:59:58.154 1633 6297 V WindowManager: Remove Window{6db3e5e u0 com.mattermost.rn/com.mattermost.rn.MainActivity}: mSurfaceController=null mAnimatingExit=false mRemoveOnExit=false mHasSurface=false surfaceShowing=false animating=false app-animation=false mDisplayFrozen=false callers=com.android.server.wm.WindowState$DeathRecipient.binderDied:3686 android.os.IBinder$DeathRecipient.binderDied:325 android.os.BinderProxy.sendDeathNotice:781 <bottom of call stack> <bottom of call stack> <bottom of call stack>
09-05 11:59:58.160 1446 1528 I SurfaceFlinger: id=61858 Removed 883a632 ActivityRecordInputSink com.mattermost.rn/.MainActivity#61858 (126)
09-05 11:59:58.161 1446 1446 I Layer : Layer::reparent [6db3e5e com.mattermost.rn/com.mattermost.rn.MainActivity#61859] newParentHandle : null -------------------------
09-05 11:59:58.161 1446 1446 I Layer : id=61859 removeFromCurrentState 6db3e5e com.mattermost.rn/com.mattermost.rn.MainActivity#61859 (127)
09-05 11:59:58.161 1446 1446 I Layer : Layer::reparent [6db3e5e com.mattermost.rn/com.mattermost.rn.MainActivity#61859] End -------------------------
09-05 11:59:58.162 1446 1446 I SurfaceFlinger: id=61859 Removed 6db3e5e com.mattermost.rn/com.mattermost.rn.MainActivity#61859 (127)
09-05 11:59:58.178 1446 1446 I Layer : Layer::reparent [ActivityRecord{3795500 u0 com.mattermost.rn/.MainActivity t22245}#61852] newParentHandle : null -------------------------
09-05 11:59:58.178 1446 1446 I Layer : id=61852 removeFromCurrentState ActivityRecord{3795500 u0 com.mattermost.rn/.MainActivity t22245}#61852 (127)
09-05 11:59:58.178 1446 1446 I Layer : id=61858 removeFromCurrentState 883a632 ActivityRecordInputSink com.mattermost.rn/.MainActivity#61858 (127)
09-05 11:59:58.178 1446 1446 I Layer : Layer::reparent [ActivityRecord{3795500 u0 com.mattermost.rn/.MainActivity t22245}#61852] End -------------------------
09-05 11:59:58.178 1446 1446 I Layer : id=61859 Destroyed 6db3e5e com.mattermost.rn/com.mattermost.rn.MainActivity#61859
09-05 11:59:58.178 1446 1446 I SurfaceFlinger: id=61852 Removed ActivityRecord{3795500 u0 com.mattermost.rn/.MainActivity t22245}#61852 (126)
09-05 11:59:58.182 1633 2046 W UsageStatsService: Unexpected activity event reported! (com.mattermost.rn/com.mattermost.rn.MainActivity event : 23 instanceId : 130151294)
09-05 11:59:58.195 1446 1446 I Layer : id=61852 Destroyed ActivityRecord{3795500 u0 com.mattermost.rn/.MainActivity t22245}#61852
09-05 11:59:58.195 1446 1446 I Layer : id=61858 Destroyed 883a632 ActivityRecordInputSink com.mattermost.rn/.MainActivity#61858
I think you’re on the right track. It’s possible that grepping for only mettermost might be hiding the actual error. I see the line
ConnectivityManager: StackLog: [android.net.ConnectivityManager.unregisterNetworkCallback(ConnectivityManager.java:5076)]
and the answer is probably under there. I am not a Java / JavaScript developer (nor any kind of developer!) and get lost pretty quickly. Hopefully someone who’s smarter than I am can help.
You might also try Mattermost
Someone mentioned https://support.mattermost.com/hc/en-us/articles/30147601934100-How-to-Gather-Mobile-App-Logs
Oh that’s much easier. But whom do I email the log?
If you had a paid subscription, there’d be an easy answer there! Here, I can suggest looking at the logs to try to figure out what’s going on. Or post the relevant section and hope someone who understands mobile apps can tell. I try to do my best, but I’m not a developer.
From looking at it I think the assumption is right that it has to do with IPv6. It tries to connect to an IPv6 address and fails. It never falls back to IPv4. Do I need to complain with Vodafone? But Mattermost is really the only app with the issue, so they would certainly point back.
This looks like it probably is an issue with the Android app. Android app can't connect if server isn't listening on IPv6 · Issue #24703 · mattermost/mattermost · GitHub
I’ll ask around if this is being worked on. FWIW I got zapped by this too… set up a new instance and couldn’t connect from my home wifi. I turned off wifi on my phone and connected over cellular, and haven’t had an issue connecting since.
So, it sounds like we’re dependent upon OkHttp for this. When they fix it, we’ll be able to fix it! Change Log - OkHttp
The problem has vanished. Not sure when exactly and why. Was there an update? I now have the mattermost app 2.19.2.
The system was updated to Android 14 a few days ago.