Android-Proximity-SDK icon indicating copy to clipboard operation
Android-Proximity-SDK copied to clipboard

Bluetooth Low Energy scan failed with error code: 2

Open rothariger opened this issue 6 years ago • 29 comments

Prerequisites

  • [X] Put an X between the brackets on this line if you have done all of the following:
    • My beacons have Estimote Monitoring enabled (Check it in the Estimote Cloud, or via app)
    • My Android device/devices supports BLE and has Android OS version >= 5.0.0
    • My Android device/devices have bluetooth enabled
    • My app has Location Permissions granted

Basic information

Estimote SDK version: 5.0.0

Android devices affected: Xiaomi Redmi Note 4

Android OS version affected: 7.1.1

Beacon hardware version: G1.12

Description

[Description of the issue]

I'm getting an Exception that crashes the App when starting to scan for beacons. For some reason this happens mostly on the listed devices, but it is also possible to trigger on other devices by turning off and on the Bluetooth before and/or after the scanning starts.

extra information about this issue, if i put the code in the main activity, it doesn't crash the application and i got the exception in withOnErrorAction, now we had to configure the scan in a service, because we want to be running in background whether the application is running or not. Because of this change the entire application crashes, that's not what i've expected.

(Optional) Steps to reproduce:

There are no several steps, just one, trying to configure the beacons as the downloaded example.

Expected behavior:

Start the scanning?

Actual behavior:

Crashes with exception.

Additional information

W/System.err: io.reactivex.exceptions.UndeliverableException: java.lang.Exception: Bluetooth Low Energy scan failed with error code: 2 W/System.err: at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:349) W/System.err: at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:74) W/System.err: at com.estimote.scanning_plugin.packet_provider.scanner.PostLollipopEstimoteScanner$scan$1$callback$1.onScanFailed(PostLollipopEstimoteScanner.kt:29) W/System.err: at android.bluetooth.le.BluetoothLeScanner$1.run(BluetoothLeScanner.java:478) W/System.err: at android.os.Handler.handleCallback(Handler.java:754) at android.os.Handler.dispatchMessage(Handler.java:95) W/System.err: at android.os.Looper.loop(Looper.java:165) W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6365) at java.lang.reflect.Method.invoke(Native Method) W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) W/System.err: Caused by: java.lang.Exception: Bluetooth Low Energy scan failed with error code: 2 ... 9 more W/MIUI-BLOCK-MONITOR: The binder call took 3622ms. java.lang.Throwable at android.os.AnrMonitor.checkBinderCallTime(AnrMonitor.java:607) at android.os.BinderProxy.transact(Binder.java:623) at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:5190) at com.android.internal.os.RuntimeInit$KillApplicationHandler.uncaughtException(RuntimeInit.java:190) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063) at io.reactivex.plugins.RxJavaPlugins.uncaught(RxJavaPlugins.java:411) at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:365) at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:74) at com.estimote.scanning_plugin.packet_provider.scanner.PostLollipopEstimoteScanner$scan$1$callback$1.onScanFailed(PostLollipopEstimoteScanner.kt:29) at android.bluetooth.le.BluetoothLeScanner$1.run(BluetoothLeScanner.java:478) at android.os.Handler.handleCallback(Handler.java:754) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:165) at android.app.ActivityThread.main(ActivityThread.java:6365) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)

rothariger avatar May 07 '18 10:05 rothariger

Thanks @rothariger for reporting this :)

Could you try disabling additional features when building your ProximityObserver object? There are two of them enabled by default - Telemetry scanning, and Estimote Secure Monitoring. If you don't need to use them, you can disable them like this:

      proximityObserver = ProximityObserverBuilder(applicationContext, cloudCredentials)
                ...
                .withEstimoteSecureMonitoringDisabled()
                .withTelemetryReportingDisabled()
                ...
                .build()

The above should reduce the number of BLE callbacks being registered in OS, thus reducing the possibility of Scan error 2.

pawelDylag avatar May 07 '18 12:05 pawelDylag

Yep already tried that didn't help.

rothariger avatar May 07 '18 13:05 rothariger

+1 IMO, as long as it does not crash and bubble up the exception to builder.withOnErrorAction() correctly, it would be a big improvement.

Crashlytics stats: vivo 87% Xiaomi 4% LENOVO 4% samsung 3% Other… 2% ; Android 7 91% Android 5 9%

janfbm avatar May 09 '18 05:05 janfbm

Please fix this crash.

image

RasoolMohamed27 avatar May 14 '18 12:05 RasoolMohamed27

I'm also getting this crash. Let me know if I can be of any help.

I'm attaching my stacktrace from Crashlytics:

# OS Version: 7.0
# Device: BV6000
# RAM Free: 53.1%
# Disk Free: 81.2%

#0. Crashed: RxCachedThreadScheduler-25
       at io.reactivex.plugins.RxJavaPlugins.onError(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.observers.LambdaObserver.dispose(Unknown Source)
       at com.estimote.scanning_plugin.api.use_cases.RxScanHandler.stop(Unknown Source)
       at com.estimote.proximity_sdk.monitoring.estimote_monitoring.secure.SecureEstimoteMonitor$mergeWithEstimoteLocationScan$1$3$1.cancel(Unknown Source)
       at io.reactivex.internal.disposables.CancellableDisposable.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.disposeAll(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onError(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainFused(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

--

Fatal Exception: io.reactivex.exceptions.UndeliverableException: java.lang.Exception: Bluetooth Low Energy scan failed with error code: 2
       at io.reactivex.plugins.RxJavaPlugins.onError(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.observers.LambdaObserver.dispose(Unknown Source)
       at com.estimote.scanning_plugin.api.use_cases.RxScanHandler.stop(Unknown Source)
       at com.estimote.proximity_sdk.monitoring.estimote_monitoring.secure.SecureEstimoteMonitor$mergeWithEstimoteLocationScan$1$3$1.cancel(Unknown Source)
       at io.reactivex.internal.disposables.CancellableDisposable.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.disposeAll(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onError(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainFused(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

Caused by java.lang.Exception: Bluetooth Low Energy scan failed with error code: 2
       at com.estimote.scanning_plugin.packet_provider.scanner.PostLollipopEstimoteScanner$scan$1$callback$1.onScanFailed(Unknown Source)
       at android.bluetooth.le.BluetoothLeScanner$1.run(BluetoothLeScanner.java:475)
       at android.os.Handler.handleCallback(Handler.java:836)
       at android.os.Handler.dispatchMessage(Handler.java:103)
       at android.os.Looper.loop(Looper.java:203)
       at android.app.ActivityThread.main(ActivityThread.java:6247)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)

#0. Crashed: RxCachedThreadScheduler-25
       at io.reactivex.plugins.RxJavaPlugins.onError(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.observers.LambdaObserver.dispose(Unknown Source)
       at com.estimote.scanning_plugin.api.use_cases.RxScanHandler.stop(Unknown Source)
       at com.estimote.proximity_sdk.monitoring.estimote_monitoring.secure.SecureEstimoteMonitor$mergeWithEstimoteLocationScan$1$3$1.cancel(Unknown Source)
       at io.reactivex.internal.disposables.CancellableDisposable.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.disposeAll(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onError(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainFused(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#1. DBFlow Transaction Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
       at com.raizlabs.android.dbflow.structure.database.transaction.DefaultTransactionQueue.run(Unknown Source)

#2. OkHttp ConnectionPool
       at java.lang.Object.wait(Object.java)
       at com.android.okhttp.ConnectionPool.performCleanup(ConnectionPool.java:305)
       at com.android.okhttp.ConnectionPool.runCleanupUntilPoolIsEmpty(ConnectionPool.java:242)
       at com.android.okhttp.ConnectionPool.-wrap0(ConnectionPool.java)
       at com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:97)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#3. RxSchedulerPurge-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#4. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#5. RxCachedThreadScheduler-20
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#6. pool-8-thread-2
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#7. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#8. RxCachedThreadScheduler-9
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#9. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#10. RxComputationThreadPool-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#11. HeapTaskDaemon
       at dalvik.system.VMRuntime.runHeapTasks(VMRuntime.java)
       at java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:438)
       at java.lang.Thread.run(Thread.java:761)

#12. Answers Events Handler1
       at libcore.io.Posix.writeBytes(Posix.java)
       at libcore.io.Posix.write(Posix.java:273)
       at libcore.io.BlockGuardOs.write(BlockGuardOs.java:319)
       at libcore.io.IoBridge.write(IoBridge.java:496)
       at java.io.RandomAccessFile.writeBytes(RandomAccessFile.java:478)
       at java.io.RandomAccessFile.write(RandomAccessFile.java:493)
       at io.fabric.sdk.android.services.common.QueueFile.initialize(Unknown Source)
       at io.fabric.sdk.android.services.common.QueueFile.(Unknown Source)
       at io.fabric.sdk.android.services.events.QueueFileEventStorage.rollOver(Unknown Source)
       at io.fabric.sdk.android.services.events.EventsFilesManager.rollFileOver(Unknown Source)
       at com.crashlytics.android.answers.EnabledSessionAnalyticsManagerStrategy.rollFileOver(Unknown Source)
       at io.fabric.sdk.android.services.events.TimeBasedFileRollOverRunnable.run(Unknown Source)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
       at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:278)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:273)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(Unknown Source)
       at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(Unknown Source)
       at java.lang.Thread.run(Thread.java:761)

#13. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#14. RxCachedThreadScheduler-5
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#15. FinalizerWatchdogDaemon
       at java.lang.Thread.sleep(Thread.java)
       at java.lang.Thread.sleep(Thread.java:371)
       at java.lang.Thread.sleep(Thread.java:313)
       at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:315)
       at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:338)
       at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:254)
       at java.lang.Thread.run(Thread.java:761)

#16. RxCachedThreadScheduler-8
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#17. RxCachedThreadScheduler-23
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#18. RxCachedThreadScheduler-18
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#19. RxCachedThreadScheduler-16
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#20. RxCachedThreadScheduler-19
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#21. RxCachedThreadScheduler-2
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#22. ReferenceQueueDaemon
       at java.lang.Object.wait(Object.java)
       at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:150)
       at java.lang.Thread.run(Thread.java:761)

#23. pool-4-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#24. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#25. Okio Watchdog
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:407)
       at okio.AsyncTimeout.exit(Unknown Source)
       at okio.AsyncTimeout$Watchdog.run(Unknown Source)

#26. RxCachedThreadScheduler-1
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#27. RxCachedThreadScheduler-4
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#28. RxCachedThreadScheduler-21
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#29. RxCachedThreadScheduler-12
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#30. RxCachedThreadScheduler-6
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#31. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#32. RxCachedThreadScheduler-15
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#33. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#34. Measurement Worker
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:407)
       at com.google.android.gms.internal.measurement.zzgk.run(Unknown Source)

#35. RxCachedThreadScheduler-7
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#36. RxCachedThreadScheduler-13
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#37. OkHttp ConnectionPool
       at java.lang.Object.wait(Object.java)
       at okhttp3.ConnectionPool$1.run(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#38. RxCachedThreadScheduler-24
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#39. Crashlytics Exception Handler1
       at dalvik.system.VMStack.getThreadStackTrace(VMStack.java)
       at java.lang.Thread.getStackTrace(Thread.java:1566)
       at java.lang.Thread.getAllStackTraces(Thread.java:1616)
       at com.crashlytics.android.core.CrashlyticsController.writeSessionEvent(Unknown Source)
       at com.crashlytics.android.core.CrashlyticsController.writeFatal(Unknown Source)
       at com.crashlytics.android.core.CrashlyticsController.enableExceptionHandling(Unknown Source)
       at com.crashlytics.android.core.CrashlyticsController$7.call(Unknown Source)
       at com.crashlytics.android.core.CrashlyticsController$7.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(Unknown Source)
       at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(Unknown Source)
       at java.lang.Thread.run(Thread.java:761)

#40. RxCachedWorkerPoolEvictor-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#41. RxCachedThreadScheduler-10
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#42. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#43. RxCachedThreadScheduler-11
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#44. RxCachedThreadScheduler-25
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:421)
       at java.util.concurrent.FutureTask.get(FutureTask.java:163)
       at com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait(Unknown Source)
       at com.crashlytics.android.core.CrashlyticsController.enableExceptionHandling(Unknown Source)
       at com.crashlytics.android.core.CrashlyticsController$6.onUncaughtException(Unknown Source)
       at com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(Unknown Source)
       at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
       at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
       at io.reactivex.plugins.RxJavaPlugins.uncaught(Unknown Source)
       at io.reactivex.plugins.RxJavaPlugins.onError(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.observers.LambdaObserver.dispose(Unknown Source)
       at com.estimote.scanning_plugin.api.use_cases.RxScanHandler.stop(Unknown Source)
       at com.estimote.proximity_sdk.monitoring.estimote_monitoring.secure.SecureEstimoteMonitor$mergeWithEstimoteLocationScan$1$3$1.cancel(Unknown Source)
       at io.reactivex.internal.disposables.CancellableDisposable.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.dispose(Unknown Source)
       at io.reactivex.internal.disposables.DisposableHelper.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.dispose(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.disposeAll(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onError(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainFused(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#45. FinalizerDaemon
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:407)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
       at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:205)
       at java.lang.Thread.run(Thread.java:761)

#46. pool-8-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#47. RxCachedThreadScheduler-17
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#48. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:421)
       at java.util.concurrent.FutureTask.get(FutureTask.java:163)
       at com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait(Unknown Source)
       at com.crashlytics.android.core.CrashlyticsCore.markInitializationStarted(Unknown Source)
       at com.crashlytics.android.core.CrashlyticsCore.doInBackground(Unknown Source)
       at com.crashlytics.android.core.CrashlyticsCore.doInBackground(Unknown Source)
       at io.fabric.sdk.android.InitializationTask.onPreExecute(Unknown Source)
       at io.fabric.sdk.android.InitializationTask.onPreExecute(Unknown Source)
       at io.fabric.sdk.android.services.concurrency.AsyncTask$2.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#49. RxCachedThreadScheduler-3
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#50. RxCachedThreadScheduler-14
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:341)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
       at java.net.Socket.connect(Socket.java:616)
       at okhttp3.internal.platform.AndroidPlatform.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connectSocket(Unknown Source)
       at okhttp3.internal.connection.RealConnection.connect(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source)
       at okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.NoCookieAuthorizationHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.UserAgentHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at com.estimote.cloud_plugin.common.ContentTypeHeaderInterceptor.intercept(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source)
       at okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source)
       at okhttp3.RealCall.execute(Unknown Source)
       at retrofit2.OkHttpCall.execute(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(Unknown Source)
       at io.reactivex.Observable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.observable.ObservableIgnoreElementsCompletable.subscribeActual(Unknown Source)
       at io.reactivex.Completable.subscribe(Unknown Source)
       at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Unknown Source)
       at io.reactivex.Scheduler$DisposeTask.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(Unknown Source)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(Unknown Source)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

#51. RxCachedThreadScheduler-22
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2127)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)


Goncalo-Almeida avatar Jun 16 '18 22:06 Goncalo-Almeida

Please fix this crash soon.

RasoolMohamed27 avatar Jul 24 '18 12:07 RasoolMohamed27

I get the exact same error here too.

biodunalfet avatar Jul 31 '18 12:07 biodunalfet

I have same error on Xiaomi 5A

kamilwlf avatar Sep 03 '18 09:09 kamilwlf

any update? I get it on few devices its so random

kamilwlf avatar Sep 05 '18 14:09 kamilwlf

phone restart helps but only for a few hours

kamilwlf avatar Sep 10 '18 10:09 kamilwlf

I am also getting the same error.

Proximity observation error: Bluetooth Low Energy scan failed with error code: 2

It works sometime and sometime throws error. @pawelDylag could you please help with the possible solution?

pratikchawke avatar Sep 25 '18 14:09 pratikchawke

Hello,

I have the same problem which is described above.

Android Proximity SDK version: 1.0.3 Android devices affected: Xiaomi Redmi Note 4 Android OS version affected: 7.1.1 Beacon hardware version: G1.12

After several hours to debug my application in a few devices, in my console (Logcat), i have this error,

E/BtGatt.GattService: App is scanning too frequently.

After 2 seconds my application is crashed with the same error code.

I wish I helped you.

pstagkopoulos avatar Oct 09 '18 10:10 pstagkopoulos

I also have this error...

gianlucainnocente avatar Nov 07 '18 15:11 gianlucainnocente

@pawelDylag I'm having the same problem, also tried above proposed solutions. This seems to be a critical yet active issue since May 2018. The intermittence of this error means we cannot deploy this into active production. Are there plans to look into this?

jax79sg avatar Nov 23 '18 09:11 jax79sg

Tested on couple modern devices, but issue occurs on some of them. Please fix it finally!

mackankowski avatar Dec 08 '18 10:12 mackankowski

Hello @pawelDylag

At least you should handle this exception at your side as it causes crashes to our development apps, and we can't handle it as it gives crashes from inside your SDK, check this exception:

Fatal Exception: o.fj.f: java.lang.Exception: Bluetooth Low Energy scan failed with error code: 2 at io.reactivex.plugins.RxJavaPlugins.onError(Unknown Source:20) at io.reactivex.internal.operators.observable.ObservableRefCount$RefCountObserver.onError(Unknown Source:21) at io.reactivex.internal.operators.observable.ObservablePublish$PublishObserver.onSubscribe(Unknown Source:27) at io.reactivex.internal.observers.BasicFuseableObserver.onSubscribe(Unknown Source:13) at io.reactivex.internal.observers.BasicFuseableObserver.onSubscribe(Unknown Source:13) at io.reactivex.internal.operators.observable.ObservableRefCount$RefCountObserver.onError(Unknown Source:17) at io.reactivex.internal.operators.observable.ObservablePublish$PublishObserver.onSubscribe(Unknown Source:27) at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.tryOnError(Unknown Source:17) at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onNext(Unknown Source) at **com.estimote.proximity_sdk.internals.monitoring.estimote_monitoring.SimpleEstimoteMonitor$startEstimoteLocationScan$1$2.invoke(Unknown Source:7) at com.estimote.proximity_sdk.internals.monitoring.estimote_monitoring.SimpleEstimoteMonitor$startEstimoteLocationScan$1$2.invoke(Unknown Source:2) at com.estimote.scanning_plugin.api.use_cases.ScanUseCase$notifyUserCallbacks$2.accept(Unknown Source:7) at com.estimote.scanning_plugin.api.use_cases.ScanUseCase$notifyUserCallbacks$2.accept(Unknown Source:2)** at io.reactivex.internal.observers.LambdaObserver.onSubscribe(Unknown Source:13) at io.reactivex.internal.observers.BasicFuseableObserver.onSubscribe(Unknown Source:13) at io.reactivex.internal.observers.BasicFuseableObserver.onSubscribe(Unknown Source:13) at io.reactivex.internal.observers.BasicFuseableObserver.onSubscribe(Unknown Source:13) at io.reactivex.internal.observers.BasicFuseableObserver.onSubscribe(Unknown Source:13) at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.tryOnError(Unknown Source:17) at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onNext(Unknown Source) at com.estimote.scanning_plugin.packet_provider.scanner.PostLollipopEstimoteScanner$scan$1$callback$1.onScanFailed(Unknown Source:32) at android.bluetooth.le.BluetoothLeScanner$1.run(BluetoothLeScanner.java:559) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6753) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Or give us away to handle it. We don't want a fix to reduce the number, you should give us a reliable solution to handle the issue or fix it totally.

mfathy avatar Dec 13 '18 09:12 mfathy

Hey guys!

I'm super sorry for not answering you for a while. We have tons of work here, and I work on multiple projects, so it's sometimes difficult to keep up with all of those. But no excuses! As for your problem - I will add this to my backlog to dig deeper into this error, though I had some problems with reproducing it AFAIR. For the time being you can think of using global onError handler to prevent your app from crashing. Just register code like this:

RxJavaPlugins.getInstance().registerErrorHandler(new RxJavaErrorHandler() {
    @Override
    public void handleError(Throwable e) {
        e.printStackTrace();
    }
});

It's an ugly solution, but sometimes you encounter bugs in RxJava that you can't deal in a proper way. So you have to use this global listener. We're not using it internally (because we hate ugly solutions), so this is why it's crashing. We may need to think about using it for a long term, because hey... it's crashing your apps, doesn't it?

Lemme know if that helps in any way. I will keep you all updated when I finally got some time to fix that on our side :)

Best wishes 🚀, Paweł

pawelDylag avatar Dec 13 '18 10:12 pawelDylag

Hi, just to let you know that capturing the error alone won't do as the SDK stops receiving proximity alerts after that. The only way is to turn on and off Bluetooth.

Sent from Yahoo Mail on Android

On Thu, 13 Dec 2018 at 18:08, Pawel Dylag[email protected] wrote:
Hey guys!

I'm super sorry for not answering you for a while. We have tons of work here, and I work on multiple projects, so it's sometimes difficult to keep up with all of those. But no excuses! As for your problem - I will add this to my backlog to dig deeper into this error, though I had some problems with reproducing it AFAIR. For the time being you can think of using global onError handler to prevent your app from crashing. Just register code like this: RxJavaPlugins.getInstance().registerErrorHandler(new RxJavaErrorHandler() { @Override public void handleError(Throwable e) { e.printStackTrace(); } }); Lemme know if that helps in any way. I will keep you all updated when I finally got some time to fix that on our side :)

Best wishes 🚀 , Paweł

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

jax79sg avatar Dec 13 '18 10:12 jax79sg

Its 2019 ! Come on guys fix it !

umarF avatar Jan 10 '19 17:01 umarF

Umar, it's time to move on... There are plenty devices like this, if they didn't care the customer.

rothariger avatar Jan 10 '19 17:01 rothariger

@rothariger It really seems the only way now. It's really weird such a major issue is open and they couldn't give a proper solution for it.

umarF avatar Jan 10 '19 17:01 umarF

Yep, and the worst part is that they don't give any update on this...

rothariger avatar Jan 10 '19 17:01 rothariger

@rothariger yes exactly, and also I mean I don't think everyone uses iOS devices for such beacon activities, it should be a major chunk of their revenue (from android side) and should have been given priority, because number of devices effected in Android > iOS always.

umarF avatar Jan 10 '19 17:01 umarF

I can manage the exception adding this code on ProximityContentManager.java on start() function.

RxJavaPlugins.setErrorHandler(e -> {
            if (e instanceof UndeliverableException) {
                e = e.getCause();
            }
            if ((e instanceof IOException) || (e instanceof SocketException)) {
                // fine, irrelevant network problem or API that throws on cancellation
                return;
            }
            if (e instanceof InterruptedException) {
                // fine, some blocking code was interrupted by a dispose call
                return;
            }
            if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) {
                // that's likely a bug in the application
                Thread.currentThread().getUncaughtExceptionHandler()
                        .uncaughtException(Thread.currentThread(), e);
                return;
            }
            if (e instanceof IllegalStateException) {
                // that's a bug in RxJava or in a custom operator
                Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e);
                return;
            }
            Log.w("Undeliverable exception received, not sure what to do", e);
        });

#See RxJava What's different in 2.0 error for more info#

At least it doesn't crash!

Hope it helps! :+1:

IreneTrullen avatar Jan 29 '19 16:01 IreneTrullen

Yea I did the same. It doesn't crash that's all. Doesn't fix the issue though.

On Tue, 29 Jan 2019 at 17:38, IreneTrullen [email protected] wrote:

I can manage the exception adding this code on ProximityContentManager.java on start() function.

RxJavaPlugins.setErrorHandler(e -> {

        if (e instanceof UndeliverableException) {

            e = e.getCause();

        }

        if ((e instanceof IOException) || (e instanceof SocketException)) {

            // fine, irrelevant network problem or API that throws on cancellation

            return;

        }

        if (e instanceof InterruptedException) {

            // fine, some blocking code was interrupted by a dispose call

            return;

        }

        if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) {

            // that's likely a bug in the application

            Thread.currentThread().getUncaughtExceptionHandler()

                    .uncaughtException(Thread.currentThread(), e);

            return;

        }

        if (e instanceof IllegalStateException) {

            // that's a bug in RxJava or in a custom operator

            Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e);

            return;

        }

        Log.w("Undeliverable exception received, not sure what to do", e);

    });

#See RxJava What's different in 2.0 error for more info# https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling

At least it don't crash!

Hope it helps! 👍

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Estimote/Android-Proximity-SDK/issues/48#issuecomment-458611529, or mute the thread https://github.com/notifications/unsubscribe-auth/AF_DUMl1sAsQsI5MbbX8Yz93VWHA2LGJks5vIHkDgaJpZM4T0wfG .

-- Sent from Gmail Mobile

umarF avatar Jan 29 '19 16:01 umarF

There's really two problems here:

  1. The SDK crashing when an error happens, instead of propagating the error to the onError handler like expected. @IreneTrullen shared a work-around for that here: https://github.com/Estimote/Android-Proximity-SDK/issues/48#issuecomment-458611529

  2. The root-cause, i.e., the "scanning failed with error code 2". I've just described what this error is/means and why it's not as scary as it seems on our forums: https://forums.estimote.com/t/postlollipopestimotescanner-kt-line-29/9745/2?u=heypiotr

heypiotr avatar Feb 25 '19 09:02 heypiotr

Got the same issue on Cubot J3, Android Oreo 8.1.0. Opened a new issue #94.

Please provide us with a fix guys!

tharpa avatar May 19 '19 13:05 tharpa

Guys when are you planning to fix this. We are getting this a lot in production.

vardaan avatar Jun 10 '19 09:06 vardaan

Hey @vardaan, please see my explanation of the root cause of the "error code 2".

https://forums.estimote.com/t/postlollipopestimotescanner-kt-line-29/9745/2?u=heypiotr

If you're getting this error in your production app, it's very likely that you're not managing the lifecycle of the Proximity Observer properly.

If you believe you're doing everything right, please post a new issue with all the details we ask for in the issue template + your code (especially the bits where you starts/stop the observer) + full output from logcat (don't use the "my app only" filter, we want to see the logs from the system Bluetooth services).

heypiotr avatar Jun 10 '19 09:06 heypiotr