"Retry" error in macOS app when connected to corporate VPN
Device model, version and app version Model Name: MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) macOS Version: Catalina 10.15.6 App Version: 2020.7 (3) Safari Version: Version 14.0 (15610.1.28.1.9, 15610)
Home Assistant Core Version HA version: 0.115.6
Describe the bug When running the macOS app while connected to my corporate VPN, the macOS app shows a "retry" screen and fails to provide a working GUI. While connected to the corporate VPN, I can access HA by going to my HA instance external address in either Safari or Chrome with no limitations to functionality. As soon as I drop the VPN, I can reconnect the macOS app with full functionality.
Interestingly, sensors continue to report without fail even when the GUI shows the "retry" error screen.
To Reproduce Connect to corporate VPN and either start macOS app or refresh (⌘-R) if already open. GUI disappears, and "retry" error screen appears - see screenshot. Sometimes functionality returns (the GUI reappears) some minutes later, other times, not at all.
Expected behavior GUI continues to function correctly.
Screenshots

Additional context Interestingly, although the GUI fails to show, connectivity through my nginx reverse proxy seems to be OK. Here is the access log during a single attempt to refresh, which fails (producing the retry screen).
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /lovelace/0 HTTP/2.0" 200 1447 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /frontend_latest/chunk.670663c49370b7ded695.js HTTP/2.0" 304 0 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /static/translations/en-554d4692949604c71196d1595a365c82.json HTTP/2.0" 200 9434 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /frontend_latest/chunk.f81557ad729a15a81254.js HTTP/2.0" 304 0 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /frontend_latest/chunk.7b8a0553309ee682bfd2.js HTTP/2.0" 304 0 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /frontend_latest/chunk.f7ca5ef1dcb5a5b2f9bf.js HTTP/2.0" 304 0 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /frontend_latest/chunk.b5d6836a930afd8ebfd9.js HTTP/2.0" 304 0 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /frontend_latest/chunk.bb9942d418d73ff16e8a.js HTTP/2.0" 304 0 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /hacsfiles/iconset.js HTTP/2.0" 200 3507 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /frontend_latest/chunk.92b4c35db0a4c95fa2cf.js HTTP/2.0" 304 0 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /frontend_latest/chunk.a971c36f8c969850f0e1.js HTTP/2.0" 304 0 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /frontend_latest/chunk.27e04144babbf2091a6d.js HTTP/2.0" 304 0 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [02/Oct/2020:14:33:34 +1000] "GET /static/icons/favicon-192x192.png HTTP/2.0" 304 0 "https://<mydomain.net>/lovelace/0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
Looking at the app's logs would probably give you a better picture of what's going on (Preferences… > Show Logs in Finder > look at log.txt). Assuming you aren't using NAT reflection to hit your reverse proxy internally, it looks like your proxy config isn't forwarding the POST requests to /auth/… that the app needs to get authentication tokens.
Thanks for the really quick reply Zac. So I've had a closer look as suggested. Interestingly, I captured a background sensor update (which worked), after which I did a manual refresh (⌘-R) while the retry screen was up (which did not work: more retry screen).
Logs as follows. Note that the background sensor update includes some POST commands (as well as GET), but the ⌘-R refresh only includes GETs. I should add - going back through the nginx logs, the GUI only seems to generate GET commands even when it is working - I can only see POST commands associated with sensor updates.
Sensor update
These are the macOS app and nginx access logs during a spontaneous sensor update. During this time, the app was connected to the corporate VPN and showing the "retry" error message in place of the GUI.
macOS app log
2020-10-05 13:48:55.393 [Info] [main] [UIApplication+BackgroundTask.swift:26] backgroundTask(withName:wrapping:) > background time remaining could not be determined
2020-10-05 13:48:55.407 [Debug] [main] [BackgroundTask.swift:54] execute(withName:beginBackgroundTask:endBackgroundTask:wrapping:) > started background task connect-api (4920)
2020-10-05 13:48:55.419 [Info] [main] [UIApplication+BackgroundTask.swift:26] backgroundTask(withName:wrapping:) > background time remaining could not be determined
2020-10-05 13:48:55.431 [Debug] [main] [BackgroundTask.swift:54] execute(withName:beginBackgroundTask:endBackgroundTask:wrapping:) > started background task webhook-send-ephemeral (4921)
2020-10-05 13:48:55.448 [Info] [main] [WebhookManager.swift:185] sendEphemeral(request:) > sending: WebhookRequest(type: "update_registration", data: ["os_version": "10.15.6", "model": "MacBookPro16,2", "device_name": "Nick\'s WorkBook Pro", "manufacturer": "Apple", "app_version": "2020.7 (3)"], localMetadata: nil)
2020-10-05 13:48:55.862 [Debug] [main] [BackgroundTask.swift:63] execute(withName:beginBackgroundTask:endBackgroundTask:wrapping:) > ending background task webhook-send-ephemeral (4921)
2020-10-05 13:48:55.882 [Info] [main] [WebhookManager.swift:207] sendEphemeral(request:) > got successful response for update_registration: {
"app_data" = {
};
"app_id" = "io.robbie.HomeAssistant";
"app_name" = "Home Assistant";
"app_version" = "2020.7 (3)";
"device_name" = "Nick's WorkBook Pro";
manufacturer = Apple;
model = "MacBookPro16,2";
"os_version" = "10.15.6";
"supports_encryption" = 1;
}
2020-10-05 13:48:55.897 [Info] [main] [UIApplication+BackgroundTask.swift:26] backgroundTask(withName:wrapping:) > background time remaining could not be determined
2020-10-05 13:48:55.910 [Debug] [main] [BackgroundTask.swift:54] execute(withName:beginBackgroundTask:endBackgroundTask:wrapping:) > started background task webhook-send-ephemeral (4922)
2020-10-05 13:48:55.926 [Info] [main] [UIApplication+BackgroundTask.swift:26] backgroundTask(withName:wrapping:) > background time remaining could not be determined
2020-10-05 13:48:55.939 [Debug] [main] [BackgroundTask.swift:54] execute(withName:beginBackgroundTask:endBackgroundTask:wrapping:) > started background task webhook-send-ephemeral (4923)
2020-10-05 13:48:55.966 [Warning] [main] [ActivitySensor.swift:36] latestMotionActivity() > Activity is not authorized
2020-10-05 13:48:55.978 [Warning] [main] [PedometerSensor.swift:36] latestPedometerData() > Pedometer is not authorized
2020-10-05 13:48:55.996 [Verbose] [main] [WatchHelpers.swift:84] BuildWatchRenderTemplatePayload() > complications Results<WatchComplication> <0x7fd8cf8379f0> (
)
2020-10-05 13:48:55.996 [Verbose] [main] [WatchHelpers.swift:90] BuildWatchRenderTemplatePayload() > mostRecentlyReceievedContext.content
nil []
2020-10-05 13:48:55.996 [Verbose] [main] [WatchHelpers.swift:129] updateComplications() > No complications have templates, not sending the request!
2020-10-05 13:48:56.001 [Info] [main] [WebhookManager.swift:185] sendEphemeral(request:) > sending: WebhookRequest(type: "get_config", data: [:], localMetadata: nil)
2020-10-05 13:48:56.013 [Info] [main] [WebhookManager.swift:185] sendEphemeral(request:) > sending: WebhookRequest(type: "get_zones", data: [:], localMetadata: nil)
2020-10-05 13:48:56.026 [Info] [main] [HAAPI.swift:753] UpdateSensors(trigger:location:) > updating sensors ["<REDACTED>_level", "<REDACTED>_state", "storage", "connectivity_ssid", "connectivity_bssid", "last_update_trigger", "camera_<redacted>", "camera_<redacted>", "microphone_AppleUSBAudioEngine:CalDigit, Inc.:CalDigit Thunderbolt 3 Audio:200000:2", "microphone_AppleUSBAudioEngine:Unknown Manufacturer:Logitech BRIO:<redacted>:4", "microphone_BuiltInMicrophoneDevice", "microphone_~:AMS2_Aggregate:0", "active"]
2020-10-05 13:48:56.039 [Info] [webhookmanager-data] [WebhookManager.swift:236] send(identifier:request:) > in background, choosing to not use background session
2020-10-05 13:48:56.051 [Info] [webhookmanager-data] [UIApplication+BackgroundTask.swift:26] backgroundTask(withName:wrapping:) > background time remaining could not be determined
2020-10-05 13:48:56.063 [Debug] [webhookmanager-data] [BackgroundTask.swift:54] execute(withName:beginBackgroundTask:endBackgroundTask:wrapping:) > started background task webhook-send (4924)
2020-10-05 13:48:56.078 [Info] [webhookmanager-data] [WebhookManager.swift:308] send(on:identifier:request:) > starting request: taskKey(session: non-background, task: 3383), type(WebhookResponseUpdateSensors), request(WebhookRequest(type: "update_sensor_states", data: [["state": 100, "attributes": ["BatteryHealthCondition": , "Current Capacity": 100, "Is Charging": 0, "Battery Provides Time Remaining": 1, "DesignCycleCount": 1000, "Time to Full Charge": 0, "Power Source State": AC Power, "Battery State": "Full", "Low Power Mode": false, "Max Capacity": 100, "Current": 0, "BatteryHealth": Good, "Hardware Serial Number": <REDACTED>, "Is Present": 1, "Time to Empty": 0, "Name": InternalBattery-0, "Power Source ID": <redacted>, "Type": InternalBattery, "Transport Type": Internal, "Is Charged": 1], "type": "sensor", "unique_id": "<REDACTED>_level", "icon": "mdi:battery"], ["state": "Full", "unique_id": "<REDACTED>_state", "icon": "mdi:battery", "attributes": ["Max Capacity": 100, "Current": 0, "BatteryHealthCondition": , "Power Source ID": <redacted>, "Transport Type": Internal, "Low Power Mode": false, "Battery Level": 100, "Battery Provides Time Remaining": 1, "Is Present": 1, "DesignCycleCount": 1000, "Hardware Serial Number": <REDACTED>, "Is Charged": 1, "Current Capacity": 100, "BatteryHealth": Good, "Is Charging": 0, "Power Source State": AC Power, "Time to Empty": 0, "Name": InternalBattery-0, "Time to Full Charge": 0, "Type": InternalBattery], "type": "sensor"], ["state": "75.02", "type": "sensor", "unique_id": "storage", "icon": "mdi:database", "attributes": ["Available": "283.34 GB", "Available (Important)": "387.43 GB", "Available (Opportunistic)": "375.08 GB", "Total": "499.96 GB"]], ["icon": "mdi:wifi", "state": "<redacted>", "type": "sensor", "unique_id": "connectivity_ssid"], ["unique_id": "connectivity_bssid", "type": "sensor", "icon": "mdi:wifi-star", "state": "<redacted>"], ["state": "Periodic", "type": "sensor", "icon": "mdi:laptop-mac", "unique_id": "last_update_trigger"], ["attributes": ["Manufacturer": "Unknown"], "icon": "mdi:camera-off", "state": false, "unique_id": "camera_<redacted>", "type": "binary_sensor"], ["unique_id": "camera_<redacted>", "state": false, "type": "binary_sensor", "icon": "mdi:camera-off", "attributes": ["Manufacturer": "Apple Inc."]], ["unique_id": "microphone_AppleUSBAudioEngine:CalDigit, Inc.:CalDigit Thunderbolt 3 Audio:200000:2", "icon": "mdi:microphone-off", "state": false, "attributes": ["Manufacturer": "CalDigit, Inc."], "type": "binary_sensor"], ["icon": "mdi:microphone-off", "attributes": ["Manufacturer": "Unknown Manufacturer"], "unique_id": "microphone_AppleUSBAudioEngine:Unknown Manufacturer:Logitech BRIO:<redacted>:4", "type": "binary_sensor", "state": false], ["state": false, "attributes": ["Manufacturer": "Apple Inc."], "type": "binary_sensor", "icon": "mdi:microphone-off", "unique_id": "microphone_BuiltInMicrophoneDevice"], ["icon": "mdi:microphone-off", "type": "binary_sensor", "unique_id": "microphone_~:AMS2_Aggregate:0", "attributes": ["Manufacturer": "Apple Inc."], "state": false], ["unique_id": "active", "state": true, "icon": "mdi:monitor", "attributes": ["Idle": false, "Screen Off": false, "Fast User Switched": false, "Locked": false, "Screensaver": false, "Sleeping": false], "type": "binary_sensor"]], localMetadata: nil))
2020-10-05 13:48:56.096 [Debug] [main] [BackgroundTask.swift:63] execute(withName:beginBackgroundTask:endBackgroundTask:wrapping:) > ending background task webhook-send-ephemeral (4923)
2020-10-05 13:48:56.109 [Debug] [main] [BackgroundTask.swift:63] execute(withName:beginBackgroundTask:endBackgroundTask:wrapping:) > ending background task webhook-send-ephemeral (4922)
2020-10-05 13:48:56.122 [Info] [main] [WebhookManager.swift:207] sendEphemeral(request:) > got successful response for get_zones: (
{
attributes = {
editable = 0;
"friendly_name" = Home;
icon = "mdi:home";
latitude = <redacted>;
longitude = <redacted>;
passive = 0;
radius = 100;
};
context = {
id = e97532f9044711eb88e505ec2f51267d;
"parent_id" = "<null>";
"user_id" = "<null>";
};
"entity_id" = "zone.home";
"last_changed" = "2020-10-02T00:40:47.089348+00:00";
"last_updated" = "2020-10-02T00:40:47.089348+00:00";
state = zoning;
},
{
attributes = {
editable = 0;
"friendly_name" = "<redacted> Road";
icon = "mdi:home";
latitude = <redacted>;
longitude = <redacted>;
passive = 0;
radius = 100;
};
context = {
id = e9753854044711eb8588870abc73636a;
"parent_id" = "<null>";
"user_id" = "<null>";
};
"entity_id" = "zone.<redacted>_road";
"last_changed" = "2020-10-02T00:40:47.089480+00:00";
"last_updated" = "2020-10-02T00:40:47.089480+00:00";
state = zoning;
},
{
attributes = {
editable = 0;
"friendly_name" = Work;
icon = "mdi:office-building";
latitude = <redacted>;
longitude = <redacted>;
passive = 0;
radius = 40;
};
context = {
id = e9753c7e044711eba97c039fe5b84504;
"parent_id" = "<null>";
"user_id" = "<null>";
};
"entity_id" = "zone.work";
"last_changed" = "2020-10-02T00:40:47.089585+00:00";
"last_updated" = "2020-10-02T00:40:47.089585+00:00";
state = zoning;
}
)
2020-10-05 13:48:56.137 [Info] [main] [WebhookManager.swift:207] sendEphemeral(request:) > got successful response for get_config: {
components = (
"sensor.ios",
"switch.esphome",
onboarding,
glances,
frontend,
"binary_sensor.esphome",
"notify.mobile_app",
tag,
"persistent_notification",
"camera.generic",
"sensor.adguard",
modbus,
"input_select",
"rest_command",
"system_health",
"notify.ios",
"sensor.statistics",
"panasonic_viera",
ffmpeg,
"sensor.time_date",
"switch.adguard",
search,
automation,
api,
notify,
"climate.generic_thermostat",
sensor,
"sensor.sql",
webhook,
hacs,
esphome,
zone,
"binary_sensor.updater",
"binary_sensor",
"sensor.nut",
hassio,
"sensor.min_max",
adguard,
"binary_sensor.zwave",
history,
homekit,
"lock.zwave",
logger,
"sensor.esphome",
recorder,
"input_datetime",
"sensor.mobile_app",
auth,
light,
"binary_sensor.mqtt",
scene,
"device_tracker",
"climate.zwave",
"mobile_app",
script,
lovelace,
"sensor.ipp",
mqtt,
"media_player.panasonic_viera",
ssdp,
"cover.zwave",
"sensor.systemmonitor",
timer,
ipp,
"shell_command",
image,
http,
"device_automation",
"sensor.mqtt",
camera,
"system_log",
lock,
config,
"binary_sensor.template",
"binary_sensor.mobile_app",
"input_number",
"fan.zwave",
sun,
"switch.template",
"switch.zwave",
cover,
"sensor.bom_forecast",
"sensor.glances",
"light.zwave",
"scene.homeassistant",
ios,
"sensor.zwave",
fan,
updater,
"websocket_api",
zwave,
person,
"climate.heatmiserneo",
logbook,
homeassistant,
nut,
plant,
"sensor.miflora",
"binary_sensor.ping",
"device_tracker.mobile_app",
"sensor.template",
"sensor.bom",
zeroconf,
upnp,
"input_boolean",
"sensor.hacs",
influxdb,
discovery,
climate,
switch,
"sensor.modbus",
"media_player"
);
elevation = <redacted>;
latitude = <redacted>;
"location_name" = Home;
longitude = <redacted>;
"theme_color" = "#03A9F4";
"time_zone" = "Australia/Hobart";
"unit_system" = {
length = km;
mass = g;
pressure = Pa;
temperature = "\U00b0C";
volume = L;
};
version = "0.115.6";
}
2020-10-05 13:48:56.137 [Verbose] [com.apple.root.utility-qos] [ModelManager.swift:160] store(type:sourceModels:) > updating RLMZone from(3) eligible(3) deleted(0) ignored(0) new(0)
2020-10-05 13:48:56.150 [Info] [main] [ZoneManager.swift:151] sync(zones:) > monitoring 5 ((beacon: 0, circular: 5, zone: 3)), started 0, ended 0
2020-10-05 13:48:56.185 [Verbose] [main] [AppDelegate.swift:733] setupSentry() > setting tag HA_Version to '0.115.6'
2020-10-05 13:48:56.198 [Info] [webhookmanager-data] [WebhookManager.swift:476] urlSession(_:task:didCompleteWithError:) > got response: taskKey(session: non-background, task: 3383), type(WebhookResponseUpdateSensors), request(WebhookRequest(type: "update_sensor_states", data: Optional([["state": 100, "attributes": ["Is Present": true, "Time to Empty": false, "Is Charging": false, "Power Source State": "AC Power", "Type": "InternalBattery", "Max Capacity": 100, "Battery State": "Full", "Time to Full Charge": false, "Current": false, "Is Charged": true, "Current Capacity": 100, "Power Source ID": <redacted>, "Transport Type": "Internal", "Low Power Mode": false, "Hardware Serial Number": <redacted>, "DesignCycleCount": 1000, "BatteryHealthCondition": "", "BatteryHealth": "Good", "Name": "InternalBattery-0", "Battery Provides Time Remaining": true], "type": "sensor", "icon": "mdi:battery", "unique_id": "<REDACTED>_level"], ["unique_id": "<redacted>_state", "type": "sensor", "state": "Full", "attributes": ["Time to Empty": false, "Type": "InternalBattery", "DesignCycleCount": 1000, "Battery Level": 100, "Is Charged": true, "Current": false, "Hardware Serial Number": "<REDACTED>", "Transport Type": "Internal", "Power Source State": "AC Power", "Name": "InternalBattery-0", "Max Capacity": 100, "Low Power Mode": false, "BatteryHealth": "Good", "Time to Full Charge": false, "Is Present": true, "Current Capacity": 100, "Power Source ID": <redacted>, "BatteryHealthCondition": "", "Is Charging": false, "Battery Provides Time Remaining": true], "icon": "mdi:battery"], ["state": "75.02", "unique_id": "storage", "type": "sensor", "attributes": ["Available (Opportunistic)": "375.08 GB", "Total": "499.96 GB", "Available": "283.34 GB", "Available (Important)": "387.43 GB"], "icon": "mdi:database"], ["unique_id": "connectivity_ssid", "type": "sensor", "icon": "mdi:wifi", "state": "<redacted>"], ["state": "<redacted>", "icon": "mdi:wifi-star", "type": "sensor", "unique_id": "connectivity_bssid"], ["icon": "mdi:laptop-mac", "unique_id": "last_update_trigger", "state": "Periodic", "type": "sensor"], ["state": false, "unique_id": "camera_<redacted>", "icon": "mdi:camera-off", "type": "binary_sensor", "attributes": ["Manufacturer": "Unknown"]], ["state": false, "icon": "mdi:camera-off", "unique_id": "camera_<redacted>", "attributes": ["Manufacturer": "Apple Inc."], "type": "binary_sensor"], ["state": false, "attributes": ["Manufacturer": "CalDigit, Inc."], "icon": "mdi:microphone-off", "unique_id": "microphone_AppleUSBAudioEngine:CalDigit, Inc.:CalDigit Thunderbolt 3 Audio:200000:2", "type": "binary_sensor"], ["attributes": ["Manufacturer": "Unknown Manufacturer"], "state": false, "icon": "mdi:microphone-off", "unique_id": "microphone_AppleUSBAudioEngine:Unknown Manufacturer:Logitech BRIO:<redacted>:4", "type": "binary_sensor"], ["attributes": ["Manufacturer": "Apple Inc."], "state": false, "icon": "mdi:microphone-off", "unique_id": "microphone_BuiltInMicrophoneDevice", "type": "binary_sensor"], ["icon": "mdi:microphone-off", "unique_id": "microphone_~:AMS2_Aggregate:0", "state": false, "attributes": ["Manufacturer": "Apple Inc."], "type": "binary_sensor"], ["state": true, "unique_id": "active", "type": "binary_sensor", "attributes": ["Screensaver": false, "Idle": false, "Screen Off": false, "Locked": false, "Sleeping": false, "Fast User Switched": false], "icon": "mdi:monitor"]]), localMetadata: nil)), statusCode(200), body({
"<REDACTED>_level" = {
success = 1;
};
"<REDACTED>_state" = {
success = 1;
};
active = {
success = 1;
};
"camera_<redacted>" = {
success = 1;
};
"camera_<redacted>" = {
success = 1;
};
"connectivity_bssid" = {
success = 1;
};
"connectivity_ssid" = {
success = 1;
};
"last_update_trigger" = {
success = 1;
};
"microphone_AppleUSBAudioEngine:CalDigit, Inc.:CalDigit Thunderbolt 3 Audio:200000:2" = {
success = 1;
};
"microphone_AppleUSBAudioEngine:Unknown Manufacturer:Logitech BRIO:<redacted>:4" = {
success = 1;
};
"microphone_BuiltInMicrophoneDevice" = {
success = 1;
};
"microphone_~:AMS2_Aggregate:0" = {
success = 1;
};
storage = {
success = 1;
};
})
2020-10-05 13:48:56.199 [Debug] [main] [BackgroundTask.swift:63] execute(withName:beginBackgroundTask:endBackgroundTask:wrapping:) > ending background task webhook-send (4924)
2020-10-05 13:48:56.220 [Verbose] [com.apple.root.utility-qos] [ModelManager.swift:160] store(type:sourceModels:) > updating NotificationCategory from(0) eligible(0) deleted(0) ignored(0) new(0)
2020-10-05 13:48:56.223 [Verbose] [com.apple.root.utility-qos] [ModelManager.swift:160] store(type:sourceModels:) > updating Action from(10) eligible(0) deleted(0) ignored(10) new(0)
2020-10-05 13:48:56.745 [Verbose] [com.apple.root.utility-qos] [ModelManager.swift:160] store(type:sourceModels:) > updating RLMScene from(10) eligible(10) deleted(0) ignored(0) new(0)
2020-10-05 13:48:56.795 [Info] [com.apple.root.utility-qos] [RealmScene.swift:81] willDelete(objects:realm:) > deleting actions []
2020-10-05 13:48:56.814 [Info] [main] [WebViewController.swift:495] loadActiveURLIfNeeded() > not changing webview url - we're okay with what we have
2020-10-05 13:48:56.828 [Warning] [main] [WatchHelpers.swift:61] SyncWatchContext() > Tried to sync HAAPI config to watch but watch not paired or app not installed
2020-10-05 13:48:56.864 [Debug] [main] [BackgroundTask.swift:63] execute(withName:beginBackgroundTask:endBackgroundTask:wrapping:) > ending background task connect-api (4920)
2020-10-05 13:48:56.892 [Info] [main] [LifecycleManager.swift:117] connectAPI(reason:) > Connect finished for reason periodic
2020-10-05 13:48:57.165 [Verbose] [main] [WebViewController.swift:645] userContentController(_:didReceive:) > getExternalAuth called, forced: false
2020-10-05 13:48:57.165 [Info] [main] [TokenManager.swift:104] authDictionaryForWebView(forceRefresh:) > using existing token
2020-10-05 13:48:57.191 [Verbose] [main] [WebViewController.swift:657] userContentController(_:didReceive:) > Success on getExternalAuth callback: nil
nginx access log
203.35.xx.xx - - [05/Oct/2020:13:48:55 +1100] "POST /api/webhook/3421d85754e03af67f6f40adcbe08a32159bce1a9f068885053aa19645300972 HTTP/2.0" 200 437 "-" "Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6)"
203.35.xx.xx - - [05/Oct/2020:13:48:55 +1100] "POST /api/webhook/3421d85754e03af67f6f40adcbe08a32159bce1a9f068885053aa19645300972 HTTP/2.0" 200 1749 "-" "Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6)"
203.35.xx.xx - - [05/Oct/2020:13:48:55 +1100] "POST /api/webhook/3421d85754e03af67f6f40adcbe08a32159bce1a9f068885053aa19645300972 HTTP/2.0" 200 2693 "-" "Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6)"
203.35.xx.xx - - [05/Oct/2020:13:48:55 +1100] "POST /api/webhook/3421d85754e03af67f6f40adcbe08a32159bce1a9f068885053aa19645300972 HTTP/2.0" 200 1005 "-" "Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6)"
203.35.xx.xx - - [05/Oct/2020:13:48:56 +1100] "GET /api/ios/config HTTP/2.0" 200 14 "-" "Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6)"
203.35.xx.xx - - [05/Oct/2020:13:48:56 +1100] "GET /api/states HTTP/2.0" 200 60680 "-" "Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6)"
203.35.xx.xx - - [05/Oct/2020:13:48:56 +1100] "GET /lovelace/2 HTTP/2.0" 200 1442 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:56 +1100] "GET /frontend_latest/chunk.670663c49370b7ded695.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:56 +1100] "GET /static/translations/en-554d4692949604c71196d1595a365c82.json HTTP/2.0" 200 9434 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:56 +1100] "GET /frontend_latest/chunk.f81557ad729a15a81254.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:56 +1100] "GET /frontend_latest/chunk.b5d6836a930afd8ebfd9.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:56 +1100] "GET /frontend_latest/chunk.bb9942d418d73ff16e8a.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:56 +1100] "GET /frontend_latest/chunk.92b4c35db0a4c95fa2cf.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:57 +1100] "GET /frontend_latest/chunk.7b8a0553309ee682bfd2.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:57 +1100] "GET /frontend_latest/chunk.f7ca5ef1dcb5a5b2f9bf.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:57 +1100] "GET /frontend_latest/chunk.a971c36f8c969850f0e1.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:57 +1100] "GET /frontend_latest/chunk.27e04144babbf2091a6d.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:57 +1100] "GET /static/icons/favicon-192x192.png HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:13:48:57 +1100] "GET /hacsfiles/iconset.js HTTP/2.0" 200 3507 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
Refresh GUI using ⌘-R
And here is the same for a manual refresh in the GUI. "retry" error message was visible in the GUI before and after hitting ⌘-R.
macOS app log
2020-10-05 14:11:44.946 [Verbose] [main] [WebViewController.swift:645] userContentController(_:didReceive:) > getExternalAuth called, forced: false
2020-10-05 14:11:44.947 [Info] [main] [TokenManager.swift:104] authDictionaryForWebView(forceRefresh:) > using existing token
2020-10-05 14:11:44.996 [Verbose] [main] [WebViewController.swift:657] userContentController(_:didReceive:) > Success on getExternalAuth callback: nil
nginx access log
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /lovelace/2 HTTP/2.0" 200 1447 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /frontend_latest/chunk.670663c49370b7ded695.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /static/translations/en-554d4692949604c71196d1595a365c82.json HTTP/2.0" 200 9434 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /frontend_latest/chunk.f81557ad729a15a81254.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /frontend_latest/chunk.f7ca5ef1dcb5a5b2f9bf.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /frontend_latest/chunk.92b4c35db0a4c95fa2cf.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /frontend_latest/chunk.7b8a0553309ee682bfd2.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /frontend_latest/chunk.b5d6836a930afd8ebfd9.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /frontend_latest/chunk.a971c36f8c969850f0e1.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /frontend_latest/chunk.bb9942d418d73ff16e8a.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /frontend_latest/chunk.27e04144babbf2091a6d.js HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /static/icons/favicon-192x192.png HTTP/2.0" 304 0 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
203.35.xx.xx - - [05/Oct/2020:14:11:44 +1100] "GET /hacsfiles/iconset.js HTTP/2.0" 200 3507 "https://<mydns.net>/lovelace/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Home Assistant/2020.7 (io.robbie.HomeAssistant; build:3; macOS 10.15.6) Mobile/HomeAssistant, like Safari"
I see; …using existing token means it didn't need to do a token update, so it wouldn't have generated a POST. Sensors also do not use authentication tokens (their webhook URL is encrypted) so those being independent does make sense. All indications point to things working correctly (except for the 'working correctly' part).
My suspicion is there's a WebSocket issue. Does nginx offer any logging for the WebSocket part? We're looking for api/websocket connections. Nothing is immediately coming to mind that would explain why the macOS app is behaving differently from Safari though, assuming they are loading the same domain.
Unfortunately we don't deliver the errors from the webview to the app (but we probably should; there's some CORS issues that make e.g. window.onerror hide all the useful data short of 'an error occurred.').
Hi Zac - it looks like the web socket part gets logged along with everything else. I only see them every so often, but I get entries like the following:
203.35.xx.xx - - [06/Oct/2020:10:00:54 +1100] "GET /api/websocket HTTP/1.1" 101 1937620 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
203.35.xx.xx - - [06/Oct/2020:10:06:05 +1100] "GET /api/websocket HTTP/1.1" 101 309351 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
I think I've only seen this coming from HA running in the Chrome browser, not from the macOS app. Not sure where to next?
Hey! Any new on this? I am facing the same issue with my corporate VPN, and if I open the dev tools, I see web socket errors.
Can you check on 2024.4?