Estimote / Android-Proximity-SDK

Estimote Proximity SDK for Android
https://developer.estimote.com
MIT License
83 stars 41 forks source link

Bluetooth Low Energy scan failed with error code: 2 #48

Open rothariger opened 6 years ago

rothariger commented 6 years ago

Prerequisites

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)

pawelDylag commented 6 years ago

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.

rothariger commented 6 years ago

Yep already tried that didn't help.

janfbm commented 6 years ago

+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%

RasoolMohamed27 commented 6 years ago

Please fix this crash.

image

Goncalo-Almeida commented 6 years ago

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)
RasoolMohamed27 commented 6 years ago

Please fix this crash soon.

biodunalfet commented 6 years ago

I get the exact same error here too.

kamilwlf commented 6 years ago

I have same error on Xiaomi 5A

kamilwlf commented 6 years ago

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

kamilwlf commented 6 years ago

phone restart helps but only for a few hours

pratikchawke commented 6 years ago

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?

pstagkopoulos commented 6 years ago

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.

gianlucainnocente commented 6 years ago

I also have this error...

jax79sg commented 6 years ago

@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?

mackankowski commented 5 years ago

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

mfathy commented 5 years ago

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.

pawelDylag commented 5 years ago

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ł

jax79sg commented 5 years ago

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 Dylagnotifications@github.com 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.

umarF commented 5 years ago

Its 2019 ! Come on guys fix it !

rothariger commented 5 years ago

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

umarF commented 5 years ago

@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.

rothariger commented 5 years ago

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

umarF commented 5 years ago

@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.

IreneTrullen commented 5 years ago

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:

umarF commented 5 years ago

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 notifications@github.com 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

heypiotr commented 5 years ago

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

tharpa commented 5 years ago

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

Please provide us with a fix guys!

vardaan commented 5 years ago

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

heypiotr commented 5 years ago

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).