Crash: com.google.gson.stream.MalformedJsonException: Unterminated string

  • I have searched for duplicates (including closed issues)
  • I have read the wiki

Bug Summary

Steps to reproduce

Run the app and experience frequent crashes

Actual behaviour

Crashes every now and then

Expected behaviour

It should locate the phone accordingly and not crash. The issue started appearing in 0.8.0 after upgrading it from 0.7.1 (F-Droid version)

Metadata

  • FMD Android version: 0.9.0

  • FMD Server version: unrelated

  • Android version: 13

  • ROM name: OxygenOS

  • Clean install: yes

Logs

FATAL EXCEPTION: main
Process: de.nulide.findmydevice, PID: 11872
java.lang.RuntimeException: Unable to start receiver de.nulide.findmydevice.receiver.PushReceiver: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 16385 path $[140].msg
See https://github.com/google/gson/blob/main/Troubleshooting.md#malformed-json
	at android.app.ActivityThread.handleReceiver(ActivityThread.java:4564)
	at android.app.ActivityThread.-$$Nest$mhandleReceiver(Unknown Source:0)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2312)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:240)
	at android.os.Looper.loop(Looper.java:351)
	at android.app.ActivityThread.main(ActivityThread.java:8423)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
Caused by: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 16385 path $[140].msg
See https://github.com/google/gson/blob/main/Troubleshooting.md#malformed-json
	at com.google.gson.Gson.fromJson(Gson.java:1375)
	at com.google.gson.Gson.fromJson(Gson.java:1306)
	at de.nulide.findmydevice.data.LogRepository.<init>(LogRepository.kt:54)
	at de.nulide.findmydevice.data.LogRepository.<init>(Unknown Source:0)
	at de.nulide.findmydevice.data.LogRepository$Companion$1.invoke(LogRepository.kt:33)
	at de.nulide.findmydevice.data.LogRepository$Companion$1.invoke(LogRepository.kt:33)
	at de.nulide.findmydevice.utils.SingletonHolder.getInstance(SingletonHolder.kt:35)
	at de.nulide.findmydevice.utils.FmdLog.<init>(FmdLog.kt:21)
	at de.nulide.findmydevice.utils.FmdLog.<init>(Unknown Source:0)
	at de.nulide.findmydevice.utils.FmdLog$Companion$1.invoke(FmdLog.kt:19)
	at de.nulide.findmydevice.utils.FmdLog$Companion$1.invoke(FmdLog.kt:19)
	at de.nulide.findmydevice.utils.SingletonHolder.getInstance(SingletonHolder.kt:35)
	at de.nulide.findmydevice.utils.FmdLogKt.log(FmdLog.kt:10)
	at de.nulide.findmydevice.net.FMDServerApiRepository.registerPushEndpoint(FMDServerApiRepository.kt:329)
	at de.nulide.findmydevice.receiver.PushReceiver.onNewEndpoint(PushReceiver.java:38)
	at org.unifiedpush.android.connector.MessagingReceiver.onReceive(MessagingReceiver.kt:30)
	at android.app.ActivityThread.handleReceiver(ActivityThread.java:4548)
	... 9 more
Caused by: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 16385 path $[140].msg
See https://github.com/google/gson/blob/main/Troubleshooting.md#malformed-json
	at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1754)
	at com.google.gson.stream.JsonReader.nextQuotedValue(JsonReader.java:1120)
	at com.google.gson.stream.JsonReader.nextString(JsonReader.java:907)
	at com.google.gson.internal.bind.TypeAdapters$15.read(TypeAdapters.java:471)
	at com.google.gson.internal.bind.TypeAdapters$15.read(TypeAdapters.java:459)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$2.readIntoField(ReflectiveTypeAdapterFactory.java:267)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$FieldReflectionAdapter.readField(ReflectiveTypeAdapterFactory.java:558)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:516)
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:83)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:59)
	at com.google.gson.Gson.fromJson(Gson.java:1361)
	... 25 more
Error reporting crash
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 16385 path $[140].msg
See https://github.com/google/gson/blob/main/Troubleshooting.md#malformed-json
	at com.google.gson.Gson.fromJson(Gson.java:1375)
	at com.google.gson.Gson.fromJson(Gson.java:1306)
	at de.nulide.findmydevice.data.LogRepository.<init>(LogRepository.kt:54)
	at de.nulide.findmydevice.data.LogRepository.<init>(Unknown Source:0)
	at de.nulide.findmydevice.data.LogRepository$Companion$1.invoke(LogRepository.kt:33)
	at de.nulide.findmydevice.data.LogRepository$Companion$1.invoke(LogRepository.kt:33)
	at de.nulide.findmydevice.utils.SingletonHolder.getInstance(SingletonHolder.kt:35)
	at de.nulide.findmydevice.utils.FmdLog.<init>(FmdLog.kt:21)
	at de.nulide.findmydevice.utils.FmdLog.<init>(Unknown Source:0)
	at de.nulide.findmydevice.utils.FmdLog$Companion$1.invoke(FmdLog.kt:19)
	at de.nulide.findmydevice.utils.FmdLog$Companion$1.invoke(FmdLog.kt:19)
	at de.nulide.findmydevice.utils.SingletonHolder.getInstance(SingletonHolder.kt:35)
	at de.nulide.findmydevice.utils.FmdLogKt.log(FmdLog.kt:10)
	at de.nulide.findmydevice.data.UncaughtExceptionHandler.uncaughtException(UncaughtExceptionHandler.kt:26)
	at com.android.internal.os.RuntimeInitExtImpl.uncaughtExceptionExt(RuntimeInitExtImpl.java:44)
	at com.android.internal.os.RuntimeInit$LoggingHandler.uncaughtException(RuntimeInit.java:140)
	at java.lang.Thread.dispatchUncaughtException(Thread.java:2300)
Caused by: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 16385 path $[140].msg
See https://github.com/google/gson/blob/main/Troubleshooting.md#malformed-json
	at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1754)
	at com.google.gson.stream.JsonReader.nextQuotedValue(JsonReader.java:1120)
	at com.google.gson.stream.JsonReader.nextString(JsonReader.java:907)
	at com.google.gson.internal.bind.TypeAdapters$15.read(TypeAdapters.java:471)
	at com.google.gson.internal.bind.TypeAdapters$15.read(TypeAdapters.java:459)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$2.readIntoField(ReflectiveTypeAdapterFactory.java:267)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$FieldReflectionAdapter.readField(ReflectiveTypeAdapterFactory.java:558)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:516)
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:83)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:59)
	at com.google.gson.Gson.fromJson(Gson.java:1361)
	... 16 more

Screenshots

Other information