Talk-android: app crashes after start (--> Avoid crash after NoSupportedApiException)

Created on 9 Jul 2021  路  7Comments  路  Source: nextcloud/talk-android

There are definitely too many users with outdated nextcloud installations. This currently leads to a crash after startup!

Steps to reproduce

  1. start app with outdated server that does not support required API's

Expected behaviour

show Warning that Server needs to be updated

Actual behaviour

app crashes immediately after start with the following exception:

com.nextcloud.talk.utils.NoSupportedApiException: 
  at com.nextcloud.talk.utils.ApiUtils.getConversationApiVersion (ApiUtils.java:146)
  at com.nextcloud.talk.controllers.ConversationsListController.fetchData (ConversationsListController.java:448)
  at com.nextcloud.talk.controllers.ConversationsListController.onAttach (ConversationsListController.java:295)
  at com.bluelinelabs.conductor.Controller.attach (Controller.java:948)
  at com.bluelinelabs.conductor.Controller$7.onAttached (Controller.java:1080)
  at com.bluelinelabs.conductor.internal.ViewAttachHandler.reportAttached (ViewAttachHandler.java:87)
  at com.bluelinelabs.conductor.internal.ViewAttachHandler$1.onAttached (ViewAttachHandler.java:47)
  at com.bluelinelabs.conductor.internal.ViewAttachHandler$2.onViewAttachedToWindow (ViewAttachHandler.java:126)
  at android.view.View.dispatchAttachedToWindow (View.java:20025)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:3596)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:3596)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:3596)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:3596)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:3596)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:3596)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:3596)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:3596)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:3596)
  at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2220)
  at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1885)
  at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:8508)
  at android.view.Choreographer$CallbackRecord.run (Choreographer.java:949)
  at android.view.Choreographer.doCallbacks (Choreographer.java:761)
  at android.view.Choreographer.doFrame (Choreographer.java:696)
  at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:935)
  at android.os.Handler.handleCallback (Handler.java:873)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:214)
  at android.app.ActivityThread.main (ActivityThread.java:7050)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:965)
bug high pr exists

All 7 comments

fyi @nickvergessen @AndyScherzinger
i currently fail to understand some logic of the version checks but i have to leave now for vaccination. Hope to find time for that in the afternoon.

@nickvergessen is probably the expert in this. The solution though should be:

  • Show a dialog with the info (like @mahibi mentioned in the description)
  • Show empty conversation list (since a user could have several accounts to several servers and needs to be able to select another user/server, else the app is un-usable)

Which version are they using? It should currently work with Nextcloud 14+ (which is End of life since Summer 2019))
And also that should be catched by the following block is ran before the fetchData which then throws.
https://github.com/nextcloud/talk-android/blob/394a640555380aaf4569ef181509069708fd781b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java#L284-L287

In
https://github.com/nextcloud/talk-android/blob/394a640555380aaf4569ef181509069708fd781b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java#L448

there is version "2" missing. I guess that that's it?

Users told that they were using server versions
16.0.4
and
19.0.13
so i guess these servers talk-versions use "conversation-v2"?
@nickvergessen

* Show empty conversation list (since a user could have several accounts to several servers and needs to be able to select another user/server, else the app is un-usable)

@AndyScherzinger no need to show an empty conversation list. Once a not supported server is used the user is offered to delete that account or switch to another one if more are existing
grafik

see https://github.com/nextcloud/talk-android/blob/394a640555380aaf4569ef181509069708fd781b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java#L1064-L1093

I tested on a 19, works as it should

馃憤

Was this page helpful?
0 / 5 - 0 ratings