crisp-im / crisp-sdk-android

:package: Crisp Android SDK, add a chat in any Android app and communicate with your users.
https://docs.crisp.chat/guides/chatbox-sdks/android-sdk/
Other
55 stars 17 forks source link

$.storage.state.scroll expected a long but was a float #112

Closed StevenWatremez closed 2 years ago

StevenWatremez commented 2 years ago

Context

Yesterday we launched Crisp for the first time on my company (Leocare) and we had several crashes. 10 on this for 4 users. We saw that your sdk Crash logs is obfoscated. Do you see this crashes on your side ?

Crash log

Fatal Exception: com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected a long but was 102.47618865966797 at line 1 column 1323 path $.storage.state.scroll
       at com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:306)
       at com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:296)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
       at com.google.gson.Gson.fromJson(Gson.java:927)
       at com.google.gson.Gson.fromJson(Gson.java:892)
       at com.google.gson.Gson.fromJson(Gson.java:841)
       at com.google.gson.Gson.fromJson(Gson.java:813)
       at im.crisp.client.internal.d.a.a.a(:8)
       at im.crisp.client.internal.d.a.m(:10)
       at im.crisp.client.internal.d.a.$r8$lambda$1dymLuR921XcxpA3GDgj8VYk9nI()
       at im.crisp.client.internal.d.a$$ExternalSyntheticLambda0.call(:2)
       at io.socket.emitter.Emitter.emit(Emitter.java:117)
       at io.socket.client.Socket.onevent(Socket.java:338)
       at io.socket.client.Socket.onpacket(Socket.java:289)
       at io.socket.client.Socket.access$100(Socket.java:24)
       at io.socket.client.Socket$2$2.call(Socket.java:120)
       at io.socket.emitter.Emitter.emit(Emitter.java:117)
       at io.socket.client.Manager.ondecoded(Manager.java:427)
       at io.socket.client.Manager.access$1600(Manager.java:30)
       at io.socket.client.Manager$7.call(Manager.java:403)
       at io.socket.parser.IOParser$Decoder.add(IOParser.java:105)
       at io.socket.client.Manager.ondata(Manager.java:419)
       at io.socket.client.Manager.access$1000(Manager.java:30)
       at io.socket.client.Manager$2.call(Manager.java:370)
       at io.socket.emitter.Emitter.emit(Emitter.java:117)
       at io.socket.engineio.client.Socket.onPacket(Socket.java:551)
       at io.socket.engineio.client.Socket.access$1000(Socket.java:36)
       at io.socket.engineio.client.Socket$5.call(Socket.java:335)
       at io.socket.emitter.Emitter.emit(Emitter.java:117)
       at io.socket.engineio.client.Transport.onPacket(Transport.java:126)
       at io.socket.engineio.client.Transport.onData(Transport.java:118)
       at io.socket.engineio.client.transports.WebSocket.access$100(WebSocket.java:24)
       at io.socket.engineio.client.transports.WebSocket$1$2.run(WebSocket.java:71)
       at io.socket.thread.EventThread$2.run(EventThread.java:80)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:923)

Caused by java.lang.NumberFormatException: Expected a long but was 102.47618865966797 at line 1 column 1323 path $.storage.state.scroll
       at com.google.gson.stream.JsonReader.nextLong(JsonReader.java:967)
       at com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:304)
       at com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:296)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
       at com.google.gson.Gson.fromJson(Gson.java:927)
       at com.google.gson.Gson.fromJson(Gson.java:892)
       at com.google.gson.Gson.fromJson(Gson.java:841)
       at com.google.gson.Gson.fromJson(Gson.java:813)
       at im.crisp.client.internal.d.a.a.a(:8)
       at im.crisp.client.internal.d.a.m(:10)
       at im.crisp.client.internal.d.a.$r8$lambda$1dymLuR921XcxpA3GDgj8VYk9nI()
       at im.crisp.client.internal.d.a$$ExternalSyntheticLambda0.call(:2)
       at io.socket.emitter.Emitter.emit(Emitter.java:117)
       at io.socket.client.Socket.onevent(Socket.java:338)
       at io.socket.client.Socket.onpacket(Socket.java:289)
       at io.socket.client.Socket.access$100(Socket.java:24)
       at io.socket.client.Socket$2$2.call(Socket.java:120)
       at io.socket.emitter.Emitter.emit(Emitter.java:117)
       at io.socket.client.Manager.ondecoded(Manager.java:427)
       at io.socket.client.Manager.access$1600(Manager.java:30)
       at io.socket.client.Manager$7.call(Manager.java:403)
       at io.socket.parser.IOParser$Decoder.add(IOParser.java:105)
       at io.socket.client.Manager.ondata(Manager.java:419)
       at io.socket.client.Manager.access$1000(Manager.java:30)
       at io.socket.client.Manager$2.call(Manager.java:370)
       at io.socket.emitter.Emitter.emit(Emitter.java:117)
       at io.socket.engineio.client.Socket.onPacket(Socket.java:551)
       at io.socket.engineio.client.Socket.access$1000(Socket.java:36)
       at io.socket.engineio.client.Socket$5.call(Socket.java:335)
       at io.socket.emitter.Emitter.emit(Emitter.java:117)
       at io.socket.engineio.client.Transport.onPacket(Transport.java:126)
       at io.socket.engineio.client.Transport.onData(Transport.java:118)
       at io.socket.engineio.client.transports.WebSocket.access$100(WebSocket.java:24)
       at io.socket.engineio.client.transports.WebSocket$1$2.run(WebSocket.java:71)
       at io.socket.thread.EventThread$2.run(EventThread.java:80)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:923)

Information

OS : Android 11
Phones : Samsung Galaxy A51, Redmi Note 8T, OnePlus Nord2 5G and HUAWEI P30
SDK Version : 1.0.9
Doc1faux commented 2 years ago

Hi @StevenWatremez and thank your for your feedback,

@baptistejamin has already reported me this crash and it has already been addressed :) It was about the scroll position I expected to be an integer, not a float :/

This is planned to be released in the next 1.0.12 release of batch fixes.

StevenWatremez commented 2 years ago

Ok thank you for this crash. I am waiting for the next release :)

StevenWatremez commented 2 years ago

I closed it too quickly sorry.

Doc1faux commented 2 years ago

Indeed ^^ No problem ;) I'll close it when the release will be available ;)

StevenWatremez commented 2 years ago

Hi, have you an idea of when this crash will be fixed and integrated to the release 1.0.12 ? Now we have 302 crashes for 72 users in 2 days, so critical for us.

Doc1faux commented 2 years ago

Hi @StevenWatremez and sorry for the wait of the v1.0.12... It has just been released to mavenCentral. It can take a few hours before it will be available. I close the issue.