home-assistant / android

:iphone: Home Assistant Companion for Android
https://companion.home-assistant.io/
Apache License 2.0
2.23k stars 623 forks source link

Out of memory crash of the Wear OS companion app when server has too many entities #4152

Open shprota opened 7 months ago

shprota commented 7 months ago

Home Assistant Android app version(s): Phone: 2023.12.4-full Watch: 2023.12.4-11898

Android version(s): Phone: 13 Watch: 11 (Wear OS 3.5)

Device model(s): Phone: Xiaomi 11 Watch: Tic Watch E3

Home Assistant version: 2024.1.5

Last working Home Assistant release (if known): Used to work on Wear OS 2 with the latest HA version

Description of problem, include YAML if issue is related to notifications:

The companion app opens and crashes in a few seconds while trying to load the list of entities from HA. The logs from the watch indicate the OOM crash.

Companion App Logs:

Logs ``` 01-24 13:06:44.973 739 779 V DisplayPowerController: Brightness [0.38976377] reason changing to: 'manual', previous reason: 'manual [ dim ]'. 01-24 13:06:45.055 739 3432 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=io.homeassistant.companion.android/.splash.SplashActivity bnds=[39,100][81,142]} from uid 10030 01-24 13:06:45.100 739 757 D CompatibilityChangeReporter: Compat change id reported: 135634846; UID 10069; state: DISABLED 01-24 13:06:45.100 739 764 D CompatibilityChangeReporter: Compat change id reported: 143937733; UID 10069; state: ENABLED 01-24 13:06:45.116 739 758 V AnimationHandler: enable 01-24 13:06:45.116 739 758 V AnimationHandler: animatorRequesters 0 = android.view.ViewRootImpl@44bfb39 01-24 13:06:45.123 432 432 D Zygote : Forked child process 9416 01-24 13:06:45.126 739 764 I ActivityManager: Start proc 9416:io.homeassistant.companion.android/u0a69 for pre-top-activity {io.homeassistant.companion.android/io.homeassistant.companion.android.splash.SplashActivity} 01-24 13:06:45.165 9416 9416 E mpanion.androi: Not starting debugger since process cannot load the jdwp agent. 01-24 13:06:45.192 739 758 W WindowManager: Unable to find process with pid=739 uid=1000 01-24 13:06:45.557 9416 9416 W mpanion.androi: JIT profile information will not be recorded: profile file does not exist. 01-24 13:06:45.558 9416 9416 W mpanion.androi: JIT profile information will not be recorded: profile file does not exist. 01-24 13:06:45.566 9416 9416 D NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: false 01-24 13:06:45.568 9416 9416 D NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: false 01-24 13:06:45.578 9416 9416 I FirebaseApp: Device unlocked: initializing all Firebase APIs for app [DEFAULT] 01-24 13:06:45.586 9416 9416 I FirebaseInitProvider: FirebaseApp initialization successful 01-24 13:06:45.590 9416 9416 D WM-WrkMgrInitializer: Initializing WorkManager with default configuration. 01-24 13:06:45.595 9416 9416 I TetheringManager: registerTetheringEventCallback:io.homeassistant.companion.android 01-24 13:06:45.598 9416 9416 D WM-PackageManagerHelper: Skipping component enablement for androidx.work.impl.background.systemjob.SystemJobService 01-24 13:06:45.598 9416 9416 D WM-Schedulers: Created SystemJobScheduler and enabled SystemJobService 01-24 13:06:45.645 9416 9416 D AppCompatDelegate: Checking for metadata for AppLocalesMetadataHolderService : Service not found 01-24 13:06:45.667 739 739 W WindowManager: Unable to find process with pid=739 uid=1000 01-24 13:06:45.673 739 926 I ActivityTaskManager: START u0 {cmp=io.homeassistant.companion.android/.home.HomeActivity} from uid 10069 01-24 13:06:45.716 9416 9416 D SensorReceiver: Received intent: android.net.wifi.STATE_CHANGE 01-24 13:06:45.718 9416 9416 D SensorReceiver: Received intent: android.net.wifi.WIFI_STATE_CHANGED 01-24 13:06:45.718 9416 9416 D SensorReceiver: Sensor wifi_state corresponding to received event android.net.wifi.WIFI_STATE_CHANGED is disabled, skipping sensors update 01-24 13:06:45.719 9416 9416 D SensorReceiver: Received intent: android.media.RINGER_MODE_CHANGED 01-24 13:06:45.719 9416 9416 D SensorReceiver: Sensor audio_sensor corresponding to received event android.media.RINGER_MODE_CHANGED is disabled, skipping sensors update 01-24 13:06:45.722 739 2515 W ActivityTaskManager: Tried to set launchTime (0) < mLastActivityLaunchTime (4772043) 01-24 13:06:45.739 9416 9448 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:45.766 9416 9416 W mpanion.androi: Class androidx.compose.runtime.snapshots.SnapshotStateMap failed lock verification and will run slower. 01-24 13:06:45.766 9416 9416 W mpanion.androi: Common causes for lock verification issues are non-optimized dex code 01-24 13:06:45.766 9416 9416 W mpanion.androi: and incorrect proguard optimizations. 01-24 13:06:45.778 9416 9416 W mpanion.androi: Class androidx.compose.runtime.snapshots.SnapshotStateList failed lock verification and will run slower. 01-24 13:06:45.783 9416 9416 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:45.793 9416 9416 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:45.799 9416 9449 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:45.887 739 2515 D ConnectivityService: requestNetwork for uid/pid:10069/9416 NetworkRequest [ TRACK_DEFAULT id=85, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 10069 AdministratorUids: [] RequestorUid: 10069 RequestorPackageName: io.homeassistant.companion.android] ] 01-24 13:06:45.888 739 824 D ConnectivityService: NetReassign [85 : null → 105] 01-24 13:06:45.889 739 739 D COMPANION_PROXY: got request NetworkRequest [ TRACK_DEFAULT id=85, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 10069 AdministratorUids: [] RequestorUid: 10069 RequestorPackageName: io.homeassistant.companion.android] ] with score 60 and providerId 3 01-24 13:06:45.889 739 820 D UntrustedWifiNetworkFactory: got request NetworkRequest [ TRACK_DEFAULT id=85, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 10069 AdministratorUids: [] RequestorUid: 10069 RequestorPackageName: io.homeassistant.companion.android] ] with score 60 and providerId 3 01-24 13:06:45.890 739 820 D WifiNetworkFactory: got request NetworkRequest [ TRACK_DEFAULT id=85, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 10069 AdministratorUids: [] RequestorUid: 10069 RequestorPackageName: io.homeassistant.companion.android] ] with score 60 and providerId 3 01-24 13:06:45.985 739 2515 D CompatibilityChangeReporter: Compat change id reported: 136274596; UID 10069; state: ENABLED 01-24 13:06:45.989 9416 9416 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:45.995 9416 9416 I chatty : uid=10069(io.homeassistant.companion.android) identical 2 lines 01-24 13:06:45.997 9416 9416 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.044 487 487 D nanohub : queueBatch: sensor=16, handle=100, period=200000000, latency=0 01-24 13:06:46.046 487 487 D nanohub : queueActivate: sensor=16, handle=100, enable=1 01-24 13:06:46.046 9416 9448 D HRSensor: Heart Rate sensor listener registered 01-24 13:06:46.080 1695 1728 D HCENfc_CardEmulationManager: getNfcCardEmulationInterface() 01-24 13:06:46.153 9416 9447 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.153 9416 9464 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.153 9416 9466 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.153 9416 9464 D ServerConnectionInfo: Using cloud / remote UI URL 01-24 13:06:46.153 9416 9447 D ServerConnectionInfo: Using cloud / remote UI URL 01-24 13:06:46.153 9416 9466 D ServerConnectionInfo: Using cloud / remote UI URL 01-24 13:06:46.158 9416 9469 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.162 9416 9469 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.168 9416 9416 V AnimationHandler: enable 01-24 13:06:46.169 9416 9416 V AnimationHandler: animatorRequesters 0 = android.view.ViewRootImpl@3ab6d9c 01-24 13:06:46.170 9416 9416 D HRSensor: HR event received with accuracy: no_contact and value: -1.0 with event count: 1 01-24 13:06:46.192 9416 9416 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.192 9416 9416 D ServerConnectionInfo: Using cloud / remote UI URL 01-24 13:06:46.192 9416 9447 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.192 9416 9447 D ServerConnectionInfo: Using cloud / remote UI URL 01-24 13:06:46.192 9416 9464 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.192 9416 9464 D ServerConnectionInfo: Using cloud / remote UI URL 01-24 13:06:46.197 9416 9416 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.199 9416 9466 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.200 9416 9466 D ServerConnectionInfo: Using cloud / remote UI URL 01-24 13:06:46.201 9416 9416 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.201 9416 9416 D ServerConnectionInfo: Using cloud / remote UI URL 01-24 13:06:46.212 9416 9416 D ServiceConnection: onServiceConnected(), componentName = ComponentInfo{com.google.android.wearable.healthservices/com.google.android.wearable.healthservices.passivemonitoring.client.PassiveMonitoringApiService} 01-24 13:06:46.365 9416 9450 I AdrenoGLES-0: QUALCOMM build : 85fd171, I13854cb805 01-24 13:06:46.365 9416 9450 I AdrenoGLES-0: Build Date : 12/29/20 01-24 13:06:46.365 9416 9450 I AdrenoGLES-0: OpenGL ES Shader Compiler Version: EV031.32.02.06 01-24 13:06:46.365 9416 9450 I AdrenoGLES-0: Local Branch : gfx-adreno.lnx.1.0 01-24 13:06:46.365 9416 9450 I AdrenoGLES-0: Remote Branch : 01-24 13:06:46.365 9416 9450 I AdrenoGLES-0: Remote Branch : 01-24 13:06:46.365 9416 9450 I AdrenoGLES-0: Reconstruct Branch : 01-24 13:06:46.365 9416 9450 I AdrenoGLES-0: Build Config : S L 11.0.2 AArch32 01-24 13:06:46.365 9416 9450 I AdrenoGLES-0: Driver Path : /vendor/lib/egl/libGLESv2_adreno.so 01-24 13:06:46.377 9416 9450 I AdrenoGLES-0: PFP: 0x005ff114, ME: 0x005ff066 01-24 13:06:46.381 359 359 I hwservicemanager: getTransport: Cannot find entry android.hardware.configstore@1.0::ISurfaceFlingerConfigs/default in either framework or device manifest. 01-24 13:06:46.446 739 762 D ArtManagerInternalImpl: /data/misc/iorapd/io.homeassistant.companion.android/11899/io.homeassistant.companion.android.home.HomeActivity/compiled_traces/compiled_trace.pb doesn't exist 01-24 13:06:46.447 9416 9445 I WM-Processor: Moving WorkSpec (95db1527-22d5-4092-8d73-dd4a3e7cfe93) to the foreground 01-24 13:06:46.450 739 762 I ActivityTaskManager: Displayed io.homeassistant.companion.android/.home.HomeActivity: +1s362ms 01-24 13:06:46.469 9416 9464 D SensorWorker: Updating all Sensors in foreground. 01-24 13:06:46.471 9416 9464 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.479 739 758 V AnimationHandler: disable animators for android.view.ViewRootImpl@44bfb39 01-24 13:06:46.479 739 758 V AnimationHandler: removeRequestorImpl for android.view.ViewRootImpl@44bfb39 01-24 13:06:46.673 9416 9464 D HRSensor: Re-registering listener as it appears to be stuck 01-24 13:06:46.676 487 510 D nanohub : queueActivate: sensor=16, handle=100, enable=0 01-24 13:06:46.689 487 510 D nanohub : queueBatch: sensor=16, handle=100, period=200000000, latency=0 01-24 13:06:46.691 487 510 D nanohub : queueActivate: sensor=16, handle=100, enable=1 01-24 13:06:46.691 9416 9464 D HRSensor: Heart Rate sensor listener registered 01-24 13:06:46.710 9416 9416 W mpanion.androi: Accessing hidden method Landroid/graphics/Canvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V (greylist-max-o, linking, denied) 01-24 13:06:46.711 9416 9416 W mpanion.androi: Accessing hidden method Landroid/graphics/Canvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/RectF;Landroid/graphics/Paint;)V (greylist-max-o, linking, denied) 01-24 13:06:46.772 9416 9466 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.775 9416 9466 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.872 9416 9416 D HRSensor: HR event received with accuracy: no_contact and value: -1.0 with event count: 2 01-24 13:06:46.874 9416 9416 D HealthServices: Supported capabilities: PassiveMonitoringCapabilities(supportedDataTypesPassiveMonitoring=[DataType(name=HeartRate, timeType=SAMPLE, class=Double, isAggregate=false), DataType(name=Daily Distance, timeType=INTERVAL, class=Double, isAggregate=false), DataType(name=Distance, timeType=INTERVAL, class=Double, isAggregate=false), DataType(name=Daily Calories, timeType=INTERVAL, class=Double, isAggregate=false), DataType(name=Calories, timeType=INTERVAL, class=Double, isAggregate=false), DataType(name=Daily Steps, timeType=INTERVAL, class=Long, isAggregate=false), DataType(name=Steps, timeType=INTERVAL, class=Long, isAggregate=false)], supportedDataTypesPassiveGoals=[DataType(name=Daily Distance, timeType=INTERVAL, class=Double, isAggregate=false), DataType(name=Daily Calories, timeType=INTERVAL, class=Double, isAggregate=false), DataType(name=Daily Steps, timeType=INTERVAL, class=Long, isAggregate=false)], supportedHealthEventTypes=[], supportedUserActivityStates=[USER_ACTIVITY_PASSIVE, USER_ACTIVITY_EXERCISE]) 01-24 13:06:46.884 9416 9416 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:46.901 9416 9476 D WebSocketRepository: Websocket: onOpen 01-24 13:06:46.911 9416 9475 D WebSocketRepository: Websocket: onOpen 01-24 13:06:46.912 9416 9474 D WebSocketRepository: Websocket: onOpen 01-24 13:06:46.912 9416 9476 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:46.912 9416 9474 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:46.915 9416 9475 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:47.114 9416 9475 D WebSocketRepository: Message number null received 01-24 13:06:47.117 9416 9447 D WebSocketRepository: Auth Requested 01-24 13:06:47.118 9416 9475 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:47.121 9416 9475 D WebSocketRepository: Message number null received 01-24 13:06:47.122 9416 9464 D WebSocketRepository: Sending message 1: {type=supported_features, id=1, features={coalesce_messages=1}} 01-24 13:06:47.122 9416 9476 D WebSocketRepository: Message number null received 01-24 13:06:47.123 9416 9466 D WebSocketRepository: Auth Requested 01-24 13:06:47.124 9416 9476 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:47.128 9416 9476 D WebSocketRepository: Message number null received 01-24 13:06:47.130 9416 9470 D WebSocketRepository: Sending message 1: {type=supported_features, id=1, features={coalesce_messages=1}} 01-24 13:06:47.131 9416 9474 D WebSocketRepository: Message number null received 01-24 13:06:47.131 9416 9466 D WebSocketRepository: Auth Requested 01-24 13:06:47.132 9416 9474 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:47.134 9416 9470 D WebSocketRepository: Sending message 2: {type=config/device_registry/list, id=2} 01-24 13:06:47.134 9416 9470 D WebSocketRepository: Message number 2 sent 01-24 13:06:47.135 9416 9474 D WebSocketRepository: Message number null received 01-24 13:06:47.139 9416 9464 D WebSocketRepository: Sending message 2: {type=config/entity_registry/list, id=2} 01-24 13:06:47.140 9416 9470 D WebSocketRepository: Sending message 1: {type=supported_features, id=1, features={coalesce_messages=1}} 01-24 13:06:47.140 9416 9464 D WebSocketRepository: Message number 2 sent 01-24 13:06:47.144 9416 9470 D WebSocketRepository: Sending message 2: {type=config/area_registry/list, id=2} 01-24 13:06:47.145 9416 9470 D WebSocketRepository: Message number 2 sent 01-24 13:06:47.146 9416 9470 D WebSocketRepository: Sending message 3: {type=get_states, id=3} 01-24 13:06:47.146 9416 9470 D WebSocketRepository: Message number 3 sent 01-24 13:06:47.169 9416 9416 I WM-SystemFgDispatcher: Started foreground service Intent { act=ACTION_START_FOREGROUND cmp=io.homeassistant.companion.android/androidx.work.impl.foreground.SystemForegroundService (has extras) } 01-24 13:06:47.171 2705 2705 I WearInputMethodService: WearInputMethodService.onBindInput():1016 01-24 13:06:47.180 9416 9416 D Compose Focus: Owner FocusChanged(true) 01-24 13:06:47.182 2705 2705 I WearInputMethodService: WearInputMethodService.onFinishInput():2247 01-24 13:06:47.182 2705 2705 I WearInputMethodService: WearInputMethodService.onStartInput():1731 01-24 13:06:47.182 2705 2705 I WearInputMethodService: WearInputMethodService.onStartInput():1743 onStartInput(), Dummy InputConnection bound 01-24 13:06:47.188 9416 9416 I Choreographer: Skipped 40 frames! The application may be doing too much work on its main thread. 01-24 13:06:47.203 9416 9416 D WebSocketRepository: Sending message 3: {type=subscribe_trigger, trigger={platform=state, entity_id=[]}, id=3} 01-24 13:06:47.214 1233 3433 I FontLog : (REDACTED) Received query %s, URI %s 01-24 13:06:47.214 1233 3433 I FontLog : (REDACTED) Query [%s] resolved to %s 01-24 13:06:47.218 1233 3433 I FontLog : (REDACTED) Fetch %s end status %s 01-24 13:06:47.224 1233 3433 I FontLog : (REDACTED) Pulling font file for id = %d, cache size = %d 01-24 13:06:47.244 1233 3433 I FontLog : (REDACTED) Pulling font file for id = %d, cache size = %d 01-24 13:06:47.271 9416 9476 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:47.275 9416 9476 D WebSocketRepository: Message number 1 received 01-24 13:06:47.287 9416 9474 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:47.287 9416 9475 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:47.288 9416 9475 D WebSocketRepository: Message number 1 received 01-24 13:06:47.289 9416 9474 D WebSocketRepository: Message number 1 received 01-24 13:06:47.676 9416 9476 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:47.847 9416 9476 D WebSocketRepository: Message number 2 received 01-24 13:06:47.985 9416 9475 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:48.419 9416 9428 I mpanion.androi: Background concurrent copying GC freed 312648(14MB) AllocSpace objects, 22(788KB) LOS objects, 49% free, 17MB/35MB, paused 3.458ms total 634.725ms 01-24 13:06:48.751 9416 9464 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:48.765 739 1690 E TaskPersister: File error accessing recents directory (directory doesn't exist?). 01-24 13:06:48.779 9416 9470 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true 01-24 13:06:49.355 9416 9475 D WebSocketRepository: Message number 2 received 01-24 13:06:49.840 9416 9416 D WebSocketRepository: Message number 3 sent 01-24 13:06:49.845 2705 2705 I WearInputMethodService: WearInputMethodService.onFinishInput():2247 01-24 13:06:49.845 2705 2705 I WearInputMethodService: WearInputMethodService.onStartInput():1731 01-24 13:06:49.846 2705 2705 I WearInputMethodService: WearInputMethodService.onStartInput():1743 onStartInput(), Dummy InputConnection bound 01-24 13:06:49.847 9416 9416 W InputMethodManager: Ignoring onBind: cur seq=331, given seq=330 01-24 13:06:49.860 9416 9416 I Choreographer: Skipped 159 frames! The application may be doing too much work on its main thread. 01-24 13:06:49.868 9416 9416 D WebSocketRepository: Sending message 4: {type=auth/current_user, id=4} 01-24 13:06:49.874 9416 9416 D WebSocketRepository: Message number 4 sent 01-24 13:06:49.877 739 926 I ActivityManager: PendingStartActivityUids startActivity to updateOomAdj delay:4151ms, uid:10069 01-24 13:06:49.925 9416 9450 I OpenGLRenderer: Davey! duration=2720ms; Flags=0, IntendedVsync=4774064965713, Vsync=4776714965607, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=4776720829061, AnimationStart=4776720834269, PerformTraversalsStart=4776724777030, DrawStart=4776724880936, SyncQueued=4776725502342, SyncStart=4776725999790, IssueDrawCommandsStart=4776726443175, SwapBuffers=4776780983748, FrameCompleted=4776786009998, DequeueBufferDuration=433281, QueueBufferDuration=466094, GpuCompleted=5804287567589865674, 01-24 13:06:49.938 893 893 V AnimationHandler: disable animators for android.view.ViewRootImpl@e2b8430 01-24 13:06:49.939 893 893 V AnimationHandler: animatorRequesters 0 = android.view.ViewRootImpl@43b2e38 01-24 13:06:49.939 893 893 V AnimationHandler: animatorRequesters 1 = android.view.ViewRootImpl@6870d95 01-24 13:06:49.939 893 893 V AnimationHandler: animatorRequesters 2 = android.view.ViewRootImpl@6eb7b8d 01-24 13:06:49.939 893 893 V AnimationHandler: animatorRequesters 3 = android.view.ViewRootImpl@eb3dab2 01-24 13:06:50.058 739 739 D NotificationService: 0|io.homeassistant.companion.android|42|null|10069: granting content://settings/system/notification_sound 01-24 13:06:50.060 739 739 I chatty : uid=1000(system) Binder:739_3 identical 2 lines 01-24 13:06:50.060 739 739 D NotificationService: 0|io.homeassistant.companion.android|42|null|10069: granting content://settings/system/notification_sound 01-24 13:06:50.062 739 739 W NotificationHistory: Attempted to add notif for locked/gone/disabled user 0 01-24 13:06:50.064 9416 9476 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:50.068 1779 1779 D WCS : [NotifCollectorService]NotificationService onNotificationPosted StatusBarNotification(pkg=io.homeassistant.companion.android user=UserHandle{0} id=42 tag=null key=0|io.homeassistant.companion.android|42|null|10069: Notification(channel=Sensor Worker shortcut=null contentView=null vibrate=null sound=null defaults=0x0 flags=0x62 color=0x00000000 vis=PRIVATE)) 01-24 13:06:50.068 9416 9476 D WebSocketRepository: Message number 3 received 01-24 13:06:50.069 1779 1866 D WCS : [CollectorHandler]handleMessage, event: ON_NOTIFICATION_POSTED_WITH_RANKING 01-24 13:06:50.070 1779 1866 D WCS : [StreamManagerCollectorListener]onNotificationPosted: StatusBarNotification(pkg=io.homeassistant.companion.android user=UserHandle{0} id=42 tag=null key=0|io.homeassistant.companion.android|42|null|10069: Notification(channel=Sensor Worker shortcut=null contentView=null vibrate=null sound=null defaults=0x0 flags=0x62 color=0x00000000 vis=PRIVATE)) 01-24 13:06:50.071 9416 9416 D WebSocketRepository: Sending message 5: {type=subscribe_events, event_type=device_registry_updated, id=5} 01-24 13:06:50.072 9416 9416 D WebSocketRepository: Message number 5 sent 01-24 13:06:50.081 1779 1779 D WCS : [NotifCollectorService]NotificationService onNotificationPosted StatusBarNotification(pkg=io.homeassistant.companion.android user=UserHandle{0} id=42 tag=null key=0|io.homeassistant.companion.android|42|null|10069: Notification(channel=Sensor Worker shortcut=null contentView=null vibrate=null sound=null defaults=0x0 flags=0x62 color=0x00000000 vis=PRIVATE)) 01-24 13:06:50.084 1779 1866 D WCS : [StreamManagerCollectorListener]Posting local notification: AutoValue_StreamItemData{hidden=NOT_HIDDEN, isFullSync=false, localPackageName=io.homeassistant.companion.android, tag=null, local=true, lastDiffedTime=1706094410070, lastPostedAsInterruptiveTime=0, getLastOngoingTime=1706094410083, priority=-1, flags=98, group=null, group=null, userId=0, groupAlertBehavior=0, summaryText[present]=false, title[present]=true, ticker[present]=true, bitTitle[present]=false, subText[present]=false, contentText[present]=true, bigText[present]=false, hasBigPicture=false, hasLargeIcon=false, hasAppIcon=true, supplementalBitmapKeysSize=0, contentActionIndex=-1, doesContentIntentLaunchActivity=false, startScrollBottom=false, textLinesSize=0, wearableActionsCount=0, actionsCount=0, bridgedContentIntent[present]=false, bridgedContentIntentId[present]=false, displayName[present]=false, conversationTitle[present]=false, messagesSize=0, localOnly=false, shouldVibrate=false, vibrationPattern=null, hasSound=false, isAutoCancel=false, isOngoing=true, fullScreenIntent=null, remoteStreamItemId=null, isMediaStyle=false, getChannel=CwChannel{id=CwChannelId{id=Sensor Worker, package=io.homeassistant.companion.android, bridged=false}, defaultChannel=false, name=SensorWorker, importance=2, canBypassDnd=false, hasSound=true, sound=content://settings/system/notification_sound, shouldShowLights=false, lightColor=0, shouldVibrate=false, vibrationPattern=null, lockscreenVisibility=-1000, canShowBadge=true, group=null, deleted=false}, isNotClearable=true, isDismissable=true, color=0, creationTimeMs=23180532, isMediaNotification=false, onlyAlertOnce=false, originalPostTime=1706094409847, postTime=1706094409847, originalPackageName=io.homeassistant.companion.android, groupKey=null, hasGroupSummary=false, sortKey=, peopleSize=0, category=null, remoteNodeId=null, isOngoingActivityStyle=false, isEmergency=false, appName=Home Assistant, filteringData=FilteringData{originalPackageName=io.homeassistant.companion.android, isMediaStyle=false, tag=null, channelId=Sensor Worker, isEmptyNotification=false, isClockworkForegroundService=false, isFrameworksForegroundNotification=false, isLegacyGmailUndoNotification=false, hasInvalidWearableExtender=false, isFromAppHandlingMissedCallNotification=false, isFromDefaultSmsApp=false, isEmptySettingsNotification=false, dismissalId=null, groupKey=null, isOngoingActivityStyle=false}, filterReason=NOT_FILTERED, isGroupConversation=false, bridgeTag=null, isAncs=false, isFromMcu=false, hasPresented=false, isWorkProfile=false, getStreamIdHashCode=-1670362056, getDismissalId=null} 01-24 13:06:50.084 1779 1866 D WCS : [CollectorHandler]handleMessage, event: ON_NOTIFICATION_POSTED_WITH_RANKING 01-24 13:06:50.084 1779 7899 D WCS : [StreamDBQueue]Promised revision #9156 to queue a new op 01-24 13:06:50.084 1779 1866 D WCS : [StreamManagerCollectorListener]onNotificationPosted: StatusBarNotification(pkg=io.homeassistant.companion.android user=UserHandle{0} id=42 tag=null key=0|io.homeassistant.companion.android|42|null|10069: Notification(channel=Sensor Worker shortcut=null contentView=null vibrate=null sound=null defaults=0x0 flags=0x62 color=0x00000000 vis=PRIVATE)) 01-24 13:06:50.084 1779 7899 D WCS : [WatchStreamManager]Promised set @ r#9156 for (io.homeassistant.companion.android,tag=null,id=42) 01-24 13:06:50.085 1779 9174 D WCS : [AlertingPipeline]Not alerting: Device is off-body 01-24 13:06:50.085 1779 9174 D WCS : [AlertingPipeline]Not alerting: Device is off-body 01-24 13:06:50.085 1779 9174 D WCS : [WatchStreamDB]Record decision: StreamAlertDecision{streamItemId=StreamItemIdAndRevision{notifKey=0|io.homeassistant.companion.android|42|null|10069, packageName=io.homeassistant.companion.android, id=42, revision=9156, originalRevision=9156, updateCount=0}, muted=true, hasSound=true, shouldVibrate=false, vibrationPattern=null} 01-24 13:06:50.086 1779 9174 D WCS : [MigrationStreamManager]notifyChange: StreamChangeEvent[modified=1, removed=0, modifiedTop=1, removedTop=0, reorder=true, possibleAlertingItem=none, alertingDecision=muted] 01-24 13:06:50.087 1779 9174 D WCS : [WcsStreamListener]Notifying WCS client notification updates, modified items = 1 01-24 13:06:50.093 1779 9174 D WCS : [WcsStreamDatabaseListener]Notifying SysUI notification listener 01-24 13:06:50.094 1779 9174 D WCS : [NewStreamAdapter]Publishing revision #9156 to adapter clients 01-24 13:06:50.094 1779 1866 D WCS : [StreamManagerCollectorListener]Posting local notification: AutoValue_StreamItemData{hidden=NOT_HIDDEN, isFullSync=false, localPackageName=io.homeassistant.companion.android, tag=null, local=true, lastDiffedTime=1706094410084, lastPostedAsInterruptiveTime=0, getLastOngoingTime=1706094410093, priority=-1, flags=98, group=null, group=null, userId=0, groupAlertBehavior=0, summaryText[present]=false, title[present]=true, ticker[present]=true, bitTitle[present]=false, subText[present]=false, contentText[present]=true, bigText[present]=false, hasBigPicture=false, hasLargeIcon=false, hasAppIcon=true, supplementalBitmapKeysSize=0, contentActionIndex=-1, doesContentIntentLaunchActivity=false, startScrollBottom=false, textLinesSize=0, wearableActionsCount=0, actionsCount=0, bridgedContentIntent[present]=false, bridgedContentIntentId[present]=false, displayName[present]=false, conversationTitle[present]=false, messagesSize=0, localOnly=false, shouldVibrate=false, vibrationPattern=null, hasSound=false, isAutoCancel=false, isOngoing=true, fullScreenIntent=null, remoteStreamItemId=null, isMediaStyle=false, getChannel=CwChannel{id=CwChannelId{id=Sensor Worker, package=io.homeassistant.companion.android, bridged=false}, defaultChannel=false, name=SensorWorker, importance=2, canBypassDnd=false, hasSound=true, sound=content://settings/system/notification_sound, shouldShowLights=false, lightColor=0, shouldVibrate=false, vibrationPattern=null, lockscreenVisibility=-1000, canShowBadge=true, group=null, deleted=false}, isNotClearable=true, isDismissable=true, color=0, creationTimeMs=23180543, isMediaNotification=false, onlyAlertOnce=false, originalPostTime=1706094409849, postTime=1706094409849, originalPackageName=io.homeassistant.companion.android, groupKey=null, hasGroupSummary=false, sortKey=, peopleSize=0, category=null, remoteNodeId=null, isOngoingActivityStyle=false, isEmergency=false, appName=Home Assistant, filteringData=FilteringData{originalPackageName=io.homeassistant.companion.android, isMediaStyle=false, tag=null, channelId=Sensor Worker, isEmptyNotification=false, isClockworkForegroundService=false, isFrameworksForegroundNotification=false, isLegacyGmailUndoNotification=false, hasInvalidWearableExtender=false, isFromAppHandlingMissedCallNotification=false, isFromDefaultSmsApp=false, isEmptySettingsNotification=false, dismissalId=null, groupKey=null, isOngoingActivityStyle=false}, filterReason=NOT_FILTERED, isGroupConversation=false, bridgeTag=null, isAncs=false, isFromMcu=false, hasPresented=false, isWorkProfile=false, getStreamIdHashCode=-1670362056, getDismissalId=null} 01-24 13:06:50.109 1779 7899 D WCS : [StreamDBQueue]Promised revision #9157 to queue a new op 01-24 13:06:50.109 1779 7899 D WCS : [WatchStreamManager]Promised set @ r#9157 for (io.homeassistant.companion.android,tag=null,id=42) 01-24 13:06:50.125 1779 9174 D WCS : [AlertingPipeline]Not alerting: Device is off-body 01-24 13:06:50.125 1779 9174 D WCS : [AlertingPipeline]Not alerting: Device is off-body 01-24 13:06:50.126 1779 9174 D WCS : [WatchStreamDB]Record decision: StreamAlertDecision{streamItemId=StreamItemIdAndRevision{notifKey=0|io.homeassistant.companion.android|42|null|10069, packageName=io.homeassistant.companion.android, id=42, revision=9157, originalRevision=9156, updateCount=1}, muted=true, hasSound=true, shouldVibrate=false, vibrationPattern=null} 01-24 13:06:50.127 1779 9174 D WCS : [MigrationStreamManager]notifyChange: StreamChangeEvent[modified=1, removed=0, modifiedTop=1, removedTop=0, reorder=true, possibleAlertingItem=none, alertingDecision=muted] 01-24 13:06:50.127 1779 9174 D WCS : [WcsStreamListener]Notifying WCS client notification updates, modified items = 1 01-24 13:06:50.136 1779 9174 D WCS : [WcsStreamDatabaseListener]Notifying SysUI notification listener 01-24 13:06:50.137 1779 9174 D WCS : [NewStreamAdapter]Publishing revision #9157 to adapter clients 01-24 13:06:50.192 9416 9476 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:50.198 9416 9476 D WebSocketRepository: Message number 4 received 01-24 13:06:50.317 9416 9476 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:50.319 9416 9476 D WebSocketRepository: Message number 5 received 01-24 13:06:50.329 9416 9416 D WebSocketRepository: Sending message 6: {type=subscribe_events, event_type=area_registry_updated, id=6} 01-24 13:06:50.331 9416 9416 D WebSocketRepository: Message number 6 sent 01-24 13:06:50.450 9416 9469 I SensorReceiver: Sensor updates and sync completed 01-24 13:06:50.506 9416 9464 I SensorReceiver: Sensor updates and sync completed 01-24 13:06:50.513 9416 9452 I WM-WorkerWrapper: Worker result SUCCESS for Work [ id=95db1527-22d5-4092-8d73-dd4a3e7cfe93, tags={ io.homeassistant.companion.android.sensors.SensorWorker } ] 01-24 13:06:50.540 9416 9416 I WM-SystemFgDispatcher: Stopping foreground service 01-24 13:06:50.555 1779 1779 D WCS : [NotifCollectorService]NotificationService onNotificationRemoved StatusBarNotification(pkg=io.homeassistant.companion.android user=UserHandle{0} id=42 tag=null key=0|io.homeassistant.companion.android|42|null|10069: Notification(channel=Sensor Worker shortcut=null contentView=null vibrate=null sound=null defaults=0x0 flags=0x62 color=0x00000000 vis=PRIVATE)) 01-24 13:06:50.555 1779 1866 D WCS : [CollectorHandler]handleMessage, event: ON_NOTIFICATION_REMOVED 01-24 13:06:50.556 1779 1866 D WCS : [StreamManagerCollectorListener]onNotificationRemoved: StreamItemIdAndRevision{notifKey=0|io.homeassistant.companion.android|42|null|10069, packageName=io.homeassistant.companion.android, id=42, revision=0, originalRevision=0, updateCount=0} 01-24 13:06:50.556 1779 9174 D WCS : [StreamDBQueue]Promised revision #9158 to queue a new op 01-24 13:06:50.556 1779 9174 D WCS : [WatchStreamManager]Promised remove @ r#9158 for StreamItemIdAndRevision{notifKey=0|io.homeassistant.companion.android|42|null|10069, packageName=io.homeassistant.companion.android, id=42, revision=0, originalRevision=0, updateCount=0} (@9157): SBN removed: StreamItemIdAndRevision{notifKey=0|io.homeassistant.companion.android|42|null|10069, packageName=io.homeassistant.companion.android, id=42, revision=0, originalRevision=0, updateCount=0} 01-24 13:06:50.561 1779 8592 D WCS : [StreamDatabase]remove. itemId: StreamItemIdAndRevision{notifKey=0|io.homeassistant.companion.android|42|null|10069, packageName=io.homeassistant.companion.android, id=42, revision=9157, originalRevision=9156, updateCount=1} 01-24 13:06:50.566 1779 8592 D WCS : [MigrationStreamManager]notifyChange: StreamChangeEvent[modified=0, removed=1, modifiedTop=0, removedTop=1, reorder=false, possibleAlertingItem=none, alertingDecision=null] 01-24 13:06:50.566 1779 8592 D WCS : [WcsStreamListener]Notifying WCS client notification updates, modified items = 0 01-24 13:06:50.576 9416 9476 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:50.577 1779 8592 D WCS : [WcsStreamDatabaseListener]Notifying SysUI notification listener 01-24 13:06:50.577 1779 8592 D WCS : [NewStreamAdapter]Publishing revision #9158 to adapter clients 01-24 13:06:50.580 9416 9476 D WebSocketRepository: Message number 6 received 01-24 13:06:50.585 9416 9416 D WebSocketRepository: Sending message 7: {type=subscribe_events, event_type=entity_registry_updated, id=7} 01-24 13:06:50.586 9416 9416 D WebSocketRepository: Message number 7 sent 01-24 13:06:50.633 739 824 D ConnectivityService: releasing NetworkRequest [ TRACK_DEFAULT id=85, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 10069 AdministratorUids: [] RequestorUid: 10069 RequestorPackageName: io.homeassistant.companion.android] ] (release request) 01-24 13:06:50.697 1779 1798 I id.wearable.ap: Background concurrent copying GC freed 63722(3661KB) AllocSpace objects, 14(280KB) LOS objects, 49% free, 3984KB/7968KB, paused 126us total 140.651ms 01-24 13:06:50.835 9416 9476 D WebSocketRepository: Websocket: onMessage (text) 01-24 13:06:50.842 9416 9476 D WebSocketRepository: Message number 7 received 01-24 13:06:51.427 9416 9507 D ProfileInstaller: Skipping profile installation for io.homeassistant.companion.android 01-24 13:06:51.717 9416 9428 I mpanion.androi: Background young concurrent copying GC freed 401773(13MB) AllocSpace objects, 1(1504KB) LOS objects, 41% free, 20MB/35MB, paused 267us total 243.708ms 01-24 13:06:52.920 9416 9428 I mpanion.androi: Background young concurrent copying GC freed 81902(2184KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 88MB/88MB, paused 129us total 266.075ms 01-24 13:06:53.014 739 1690 E TaskPersister: File error accessing recents directory (directory doesn't exist?). 01-24 13:06:53.172 9416 9474 I mpanion.androi: Waiting for a blocking GC Alloc 01-24 13:06:53.204 9416 9428 I mpanion.androi: Background concurrent copying GC freed 114134(21MB) AllocSpace objects, 15(4008KB) LOS objects, 27% free, 63MB/87MB, paused 170us total 281.568ms 01-24 13:06:53.205 9416 9474 I mpanion.androi: WaitForGcToComplete blocked Alloc on Background for 32.683ms 01-24 13:06:53.205 9416 9474 I mpanion.androi: Starting a blocking GC Alloc 01-24 13:06:53.205 9416 9474 I mpanion.androi: Forcing collection of SoftReferences for 35MB allocation 01-24 13:06:53.205 9416 9474 I mpanion.androi: Starting a blocking GC Alloc 01-24 13:06:53.407 9416 9474 I mpanion.androi: Alloc concurrent copying GC freed 9986(537KB) AllocSpace objects, 0(0B) LOS objects, 27% free, 62MB/86MB, paused 148us total 202.529ms 01-24 13:06:53.408 9416 9474 W mpanion.androi: Throwing OutOfMemoryError "Failed to allocate a 37439694 byte allocation with 25165824 free bytes and 33MB until OOM, target footprint 90963400, growth limit 100663296" (VmSize 1207684 kB) 01-24 13:06:53.408 9416 9474 I mpanion.androi: Starting a blocking GC Alloc 01-24 13:06:53.408 9416 9474 I mpanion.androi: Starting a blocking GC Alloc 01-24 13:06:53.487 9416 9474 I mpanion.androi: Alloc young concurrent copying GC freed 778(62KB) AllocSpace objects, 0(0B) LOS objects, 27% free, 62MB/86MB, paused 131us total 78.765ms 01-24 13:06:53.487 9416 9474 I mpanion.androi: Forcing collection of SoftReferences for 35MB allocation 01-24 13:06:53.487 9416 9474 I mpanion.androi: Starting a blocking GC Alloc 01-24 13:06:53.678 9416 9474 I mpanion.androi: Alloc concurrent copying GC freed 302(33KB) AllocSpace objects, 0(0B) LOS objects, 27% free, 62MB/86MB, paused 131us total 190.759ms 01-24 13:06:53.678 9416 9428 I mpanion.androi: WaitForGcToComplete blocked HeapTrim on Alloc for 261.227ms 01-24 13:06:53.679 9416 9474 W mpanion.androi: Throwing OutOfMemoryError "Failed to allocate a 37439696 byte allocation with 25165824 free bytes and 33MB until OOM, target footprint 90962920, growth limit 100663296" (VmSize 1207620 kB) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher 01-24 13:06:53.681 9416 9474 E AndroidRuntime: Process: io.homeassistant.companion.android, PID: 9416 01-24 13:06:53.681 9416 9474 E AndroidRuntime: java.lang.OutOfMemoryError: Failed to allocate a 37439696 byte allocation with 25165824 free bytes and 33MB until OOM, target footprint 90962920, growth limit 100663296 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at java.lang.StringFactory.newStringFromBytes(StringFactory.java:225) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at java.lang.StringFactory.newStringFromBytes(StringFactory.java:249) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at okio.Buffer.readString(Buffer.kt:313) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at okio.Buffer.readUtf8(Buffer.kt:297) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at okhttp3.internal.ws.WebSocketReader.readMessageFrame(WebSocketReader.kt:245) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.kt:106) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.kt:293) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:195) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 01-24 13:06:53.681 9416 9474 E AndroidRuntime: at java.lang.Thread.run(Thread.java:923) 01-24 13:06:53.686 739 9511 I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2 01-24 13:06:53.688 739 4331 W ActivityTaskManager: Force finishing activity io.homeassistant.companion.android/.home.HomeActivity 01-24 13:06:53.710 9416 9467 D WebSocketRepository: Unsubscribing from subscribe_trigger with data {trigger={platform=state, entity_id=[]}} 01-24 13:06:53.710 9416 9467 D WebSocketRepository: Sending message 8: {type=unsubscribe_events, subscription=3, id=8} 01-24 13:06:53.711 9416 9467 D WebSocketRepository: Message number 8 sent 01-24 13:06:53.714 739 763 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.chimera.GmsIntentOperationService$PersistentTrustedReceiver 01-24 13:06:53.714 739 763 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.stats.service.DropBoxEntryAddedReceiver 01-24 13:06:53.715 9416 9474 I Process : Sending signal. PID: 9416 SIG: 9 01-24 13:06:53.829 739 4331 I WindowManager: WIN DEATH: Window{9dea7a8 u0 io.homeassistant.companion.android/io.homeassistant.companion.android.home.HomeActivity} 01-24 13:06:53.829 739 3432 I ActivityManager: Process io.homeassistant.companion.android (pid 9416) has died: fg TOP 01-24 13:06:53.829 739 4331 W InputDispatcher: Attempted to unregister already unregistered input channel '9dea7a8 io.homeassistant.companion.android/io.homeassistant.companion.android.home.HomeActivity (server)' 01-24 13:06:53.832 487 487 D nanohub : queueActivate: sensor=16, handle=100, enable=0 01-24 13:06:53.833 432 432 I Zygote : Process 9416 exited due to signal 9 (Killed) 01-24 13:06:53.857 893 893 V AnimationHandler: enable 01-24 13:06:53.858 893 893 V AnimationHandler: animatorRequesters 0 = android.view.ViewRootImpl@43b2e38 01-24 13:06:53.858 893 893 V AnimationHandler: animatorRequesters 1 = android.view.ViewRootImpl@6870d95 01-24 13:06:53.858 893 893 V AnimationHandler: animatorRequesters 2 = android.view.ViewRootImpl@6eb7b8d 01-24 13:06:53.858 893 893 V AnimationHandler: animatorRequesters 3 = android.view.ViewRootImpl@e2b8430 01-24 13:06:53.858 893 893 V AnimationHandler: animatorRequesters 4 = android.view.ViewRootImpl@eb3dab2 01-24 13:06:53.869 739 765 I libprocessgroup: Successfully killed process cgroup uid 10069 pid 9416 in 39ms 01-24 13:06:53.901 739 757 W ActivityManager: setHasOverlayUi called on unknown pid: 9416 01-24 13:06:53.907 2705 2705 I WearGboardApp: WearGboardApp.onTrimMemory():402 onTrimMemory(): 15 ```

Screenshot or video of problem:

Additional information:

It may be important to note that my HA configuration has quite a lot of entities registered in the system, so a request for the entire list could get a large response that might lead to the memory allocation failure in the OKHTTP. However, there was not such issue on the previous version of Wear OS. The issue appeared after the fresh installation after my watch has been upgraded to Wear OS 3.5.

dshokouhi commented 7 months ago

You'll probably need to add favorite entries to the watch then enable show favorites only in the watch app settings. I don't think there is much we can do here, we can't control the size of the API call.

shprota commented 7 months ago

I tried to enable only favorites but it still crashes with the OOM exception. Just stays a few seconds longer than with the "only favorites" turned off.

dshokouhi commented 7 months ago

Can you give us a count of how many entities you have?

shprota commented 7 months ago

I probably can do better and provide you with the entities list API call response if you can specify which endpoint are you calling to retrieve the list.

shprota commented 7 months ago

The response size of the /api/states request is 18769079 bytes.

dshokouhi commented 7 months ago

those API endpoints wont be of help, the app does not control the data retrieved we just process it.

From the templates tab you can use

{{ states | count }}

Personally I have 2200

shprota commented 7 months ago

{{ states | count }} returns 59090

dshokouhi commented 7 months ago

its interesting that this was not an issue on Wear OS 2 and only an issue when you updated the OS on the watch.

shprota commented 7 months ago

Either the new Wear OS is consuming way more memory leaving way less to the apps or the latest version of the companion app introduced the issue. I checked these values out of curiosity: {{ states.switch | count }} = 51 {{ states.light | count }} = 26 {{ states.sensor | count }} = 345

Could this be of help?

dshokouhi commented 7 months ago

no at this point im not sure what more can help, using favorites only usually avoids the issue of too many entities/updates but apparently not the case for you? Does it continue to crash with that option enabled and only a few favorites added?

does the crash always contain the same error or do you sometimes see https://github.com/home-assistant/android/issues/3325 ?

shprota commented 7 months ago

I have only two favorite switches enabled. No templates. It continues to crash. The crash contains the same allocation error in OKHTTP.

Btw, seems like most of the states are coming from device_tracker domain: {{ states.device_tracker | count }} = 58344

Probably there's a way to filter them out completely.

dshokouhi commented 7 months ago

why do you have taht many device trackers? that doesnt sound right honestly. Cleaning those in your server should resolve the issue on your end.

Probably there's a way to filter them out completely.

not when we request the full list of entities while we determine what can and cant be used in the app.

shprota commented 7 months ago

why do you have taht many device trackers?

Honestly, no idea. I will make a stab at cleaning those out of course. I actually was very surprised finding this out just now.

marazmarci commented 7 months ago

I have only two favorite switches enabled. No templates. It continues to crash. The crash contains the same allocation error in OKHTTP.

Btw, seems like most of the states are coming from device_tracker domain: {{ states.device_tracker | count }} = 58344

Probably there's a way to filter them out completely.

@shprota do you have a Bluetooth tracker set up at home? 🤔

marazmarci commented 7 months ago

its interesting that this was not an issue on Wear OS 2 and only an issue when you updated the OS on the watch.

IMHO it's not that surprising since new software = more software = less free RAM 😄

shprota commented 7 months ago

do you have a Bluetooth tracker set up at home?

Oh yeah! It was set up and it was the source of the excessive device_tracker states. Thanks for the pointer!

So now I have removed the BLE tracker, cleaned the excessive entities and the companion app is back working like a charm.

Thank you, guys, for the invaluable help.

I still think that the HA REST API should provide for pagination or filtering for specific entity types. Regardless of the runaway BLE tracker, I can imagine a setup with quite some number of meaningful entities and it is barely acceptable for the owners of such setup that the companion apps might just crash on them. If I have the time to get into this, I could introduce a PR either to the HA core to enhance the REST API or to the companion app to use streaming for response parsing and filtering.