Android app connection problem, reproduced

Hi,

I’ve (finally - by chance) reproduced the connection problem I’ve seen occasionally in the analytics - it wasn’t causing app crashes for you, just a seeming inability to connect. It seems the root cause is a bug on the device side code. And by chance, girts might be already investigating this problem.

2020-03-15 15:49:11.915 31134-31151/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: work readC 8ba2bcc2-ee02-4a55-a531-c525c5e454d5 is completed, resuming status=0, res=android.bluetooth.BluetoothGattCharacteristic@6e0ca3c
2020-03-15 15:49:11.916 31134-31151/com.geeksville.mesh D/com.geeksville.mesh.service.RadioInterfaceService: Received 19 bytes from radio
2020-03-15 15:49:11.920 31134-31151/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: Enqueuing work: readC 8ba2bcc2-ee02-4a55-a531-c525c5e454d5
2020-03-15 15:49:11.920 31134-31151/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth$BluetoothContinuation: Starting work: readC 8ba2bcc2-ee02-4a55-a531-c525c5e454d5
2020-03-15 15:49:11.922 31134-31134/com.geeksville.mesh D/com.geeksville.mesh.service.MeshService: Received broadcast com.geeksville.mesh.RECEIVE_FROMRADIO
2020-03-15 15:49:11.925 31134-31134/com.geeksville.mesh E/com.geeksville.util.Exceptions: exceptionReporter Uncaught Exception
    com.google.protobuf.InvalidProtocolBufferException: Protocol message contained an invalid tag (zero).
        at com.google.protobuf.GeneratedMessageLite.parsePartialFrom(GeneratedMessageLite.java:1566)
        at com.google.protobuf.GeneratedMessageLite.parseFrom(GeneratedMessageLite.java:1655)
        at com.geeksville.mesh.MeshProtos$FromRadio.parseFrom(MeshProtos.java:8927)
        at com.geeksville.mesh.service.MeshService$radioInterfaceReceiver$1$onReceive$1.invoke(MeshService.kt:758)
        at com.geeksville.mesh.service.MeshService$radioInterfaceReceiver$1$onReceive$1.invoke(Unknown Source:0)
        at com.geeksville.util.ExceptionsKt.exceptionReporter(Exceptions.kt:31)
        at com.geeksville.mesh.service.MeshService$radioInterfaceReceiver$1.onReceive(MeshService.kt:738)
        at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1550)
        at android.app.-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA.run(Unknown Source:2)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
2020-03-15 15:49:16.939 31134-31151/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: work readC 8ba2bcc2-ee02-4a55-a531-c525c5e454d5 is completed, resuming status=133, res=android.bluetooth.BluetoothGattCharacteristic@6e0ca3c
2020-03-15 15:49:16.941 31134-31151/com.geeksville.mesh E/com.geeksville.util.Exceptions: exceptionReporter Uncaught Exception
    java.io.IOException: Bluetooth status=133 while doing readC 8ba2bcc2-ee02-4a55-a531-c525c5e454d5
        at com.geeksville.mesh.service.SafeBluetooth$completeWork$1.invoke(SafeBluetooth.kt:326)
        at com.geeksville.mesh.service.SafeBluetooth$completeWork$1.invoke(Unknown Source:0)
        at com.geeksville.util.ExceptionsKt.exceptionReporter(Exceptions.kt:31)
        at com.geeksville.mesh.service.SafeBluetooth.completeWork(SafeBluetooth.kt:311)
        at com.geeksville.mesh.service.SafeBluetooth.access$completeWork$2(Unknown Source:0)
        at com.geeksville.mesh.service.SafeBluetooth$gattCallback$1.onCharacteristicRead(SafeBluetooth.kt:206)
        at android.bluetooth.BluetoothGatt$1$6.run(BluetoothGatt.java:394)
        at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:780)
        at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:41)
        at android.bluetooth.BluetoothGatt$1.onCharacteristicRead(BluetoothGatt.java:388)
        at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:246)
        at android.os.Binder.execTransactInternal(Binder.java:1021)
        at android.os.Binder.execTransact(Binder.java:994)
*** Mesh service:
sending owner !246f2896c928/Unknown c928/?28
Update DB node 0x28 for variant 4, rx_time=0
old user !246f2896c928/Unknown c928/?28
updating changed=0 user !246f2896c928/Unknown c928/?28
immedate send on mesh (txGood=0,rxGood=0,rxBad=0)
showing standard frames
 onAuthenticationComplete -> success size: 12
showing standard frames
Trigger powerFSM 9
Got on write
Error: can't decode protobuf zero tag

issue for this fix: https://github.com/meshtastic/Meshtastic-esp32/issues/33

btw: this bug I think is now fixed in device code 0.1.9