Errors - thoukydides/homebridge-homeconnect GitHub Wiki

Error Messages

Like most Homebridge plugins, this plugin logs information at different levels based on its severity:

  • Error (red bold): Errors that might be important. This is also used to highlight the authorisation URL.
  • Warn (yellow): Something unusual has happened that may merit special attention, e.g. restricted functionality due to a configuration error.
  • Log (white): Normal activity.
  • Debug (grey): This is used for more verbose and technical information that is useful for debugging problems with this plugin. It includes stack backtraces for errors, and a list of all Home Connect API requests that are issued.

The Debug log level is hidden unless Homebridge is run with -D added to its command line. Please enable this when reporting an issue with this plugin. It is very difficult to debug issues without this level of logging.

Note that Homebridge supports a second debug mode enabled using the DEBUG=* environment variable. This enables tracing of HAP-NodeJS HomeKit exchanges. It does not affect logging by this plugin, and is rarely useful.

Home Connect API Errors

All errors returned by the Home Connect API are written to the Homebridge log file. In most cases these do not indicate a problem with this plugin.

An incomplete list of Home Connect API errors can be found in the API Errors documentation.

Some common errors are described in the following sections. None of them are due to problems with this plugin. In most cases the plugin will recover when the Home Connect servers start responding correctly.

Home Connect Servers Unreachable

The following errors are generated locally if it is not possible to establish a connection to the Home Connect servers (or when no keep-alive messages stop being received over the event stream connection):

  • connect ETIMEDOUT ...:443
  • Client network socket disconnected before secure TLS connection was established

These errors are sometimes caused by the Home Connect servers being unavailable. They may also be due to a problem with the internet connection between Homebridge and the Home Connect servers.

Home Connect Appliance Unreachable

The following errors indicate that the Home Connect servers cannot communicate with the appliance:

  • HomeAppliance is offline [SDK.Error.HomeAppliance.Connection.Initialization.Failed]
  • HomeAppliance did not respond in time. [SDK.Error.HomeAppliance.Connection.Initialization.Failed]
  • HomeAppliance did not respond to connection initialization requests in time, it might be offline [SDK.Error.HomeAppliance.Connection.Initialization.Failed]

They are sometimes caused by problems with the Home Connect servers. However, they may also be due to a problem with the appliances themselves, or the internet connection between the appliances and the Home Connect servers.

Home Connect Servers Unavailable

If the Home Connect Servers do not respond correctly then the following errors may be returned by the Amazon Web Services (AWS) proxy:

  • Bad Gateway
  • Proxy Error
  • Gateway Timeout
  • Gateway Time-out
  • Internal Server Error
  • Service Unavailable
  • Service Temporarily Unavailable
  • Unauthorized
  • 408 - "<html><body><h1>408 Request Time-out</h1>\nYour browser didn't send a complete request in time.\n</body></html>\n"
  • 502 - "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>502 Proxy Error</title>\n</head><body>\n<h1>Proxy Error</h1>\n<p>The proxy server received an invalid\r\nresponse from an upstream server.<br />\r\nThe proxy server could not handle the request <em><a href=\"/api/homeappliances/...">GET&nbsp;/api/homeappliances/...</a></em>.<p>\nReason: <strong>Error reading from remote server</strong></p></p>\n</body></html>\n"
  • 503 - "The server was not able to produce a timely response to your request.\r\nPlease try again in a short while!"
  • 503 - "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>503 Service Temporarily Unavailable</title>\n</head><body>\n<h1>Service Temporarily Unavailable</h1>\n<p>The server is temporarily unable to service your\nrequest due to maintenance downtime or capacity\nproblems. Please try again later.</p>\n</body></html>\n"

When the Home Connect servers do respond but are not working correctly they may return the following errors:

  • internal error (Home Connect subsystem) [500]
  • Could not validate permissions to access HomeAppliance [500]
  • Invalid response from Home Connect subsystem. Please try it again. [502]
  • Home Connect subsystem not available. Please try it again. [503]
  • Timeout on Home Connect subsystem. Please try it again. [SDK.Error.504.GatewayTimeout]

Home Connect API Bugs

The Home Connect API has some bugs features. Some that generate unexpected and undocumented errors include:

  • HomeAppliance reported an error [BSH.Common.Error.InvalidUIDValue]
    • This was returned when querying the supported programs for a Thermador Oven (PRD486WDHU/01) that does not support remote control. The Home Connect API has since been corrected to only return details for ovens that are fully supported. (#2)
  • HomeAppliance reported an error [BSH.Common.Error.WriteRequest.NotAvailableByList]
    • One cause of this is attempting to switch an Bosch Oven (HB678GBS6B/50) appliance to standby. This used to work.

Home Connect Rate Limits

Home Connect implements very strict Rate Limits on API requests. Exceeding these limits results in a variety of errors including:

  • Too Many Requests
  • The rate limit "50 calls in 1 minute" was reached. Requests are blocked during the remaining period of ... seconds. [429]
  • The rate limit "10 successive error calls in 10 minutes" was reached. Requests are blocked during the remaining period of ... seconds. [429]

This plugin does its best to avoid hitting the rate limits, e.g. by subscribing to an event stream instead of polling appliance state, only issuing requests to the Home Connect servers that are expected to succeed based on knowledge of the appliance state, and caching results that are not expected to change.

However, sometimes the rate limits are still exceeded, especially when there are errors due to Home Connect server problems or an intermittent internet connection. When this happens the plugin respects any Retry-After headers, and recovers automatically when the connection is restored.

Expected Home Connect API Errors

Finally, some errors are expected during correct operation. These include:

  • There is no program selected [SDK.Error.NoProgramSelected]
  • There is no program active [SDK.Error.NoProgramActive]
    • After connection to an appliance has been lost and re-established it is necessary to poll the current state. This results in errors for state that is not currently available or not supported by the appliance.
  • Request cannot be performed in the current operation state [SDK.Error.WrongOperationState]
  • BSH.Common.Setting.PowerState currently not available or writable [SDK.Error.InvalidSettingState]
    • Some appliances do not support all operations in some states, e.g. a Siemens Dishwasher (SN678D06TG/53) does not allow the available programs to be read when a program has finished but the door has not been opened. The API documentation does not specify these constraints.

Home Connect Server Status

Check the status of the Home Connect servers using:

Within the Home Connect app check the connection status of an appliance by opening its Settings, and scrolling to the Network section. All three lines (for the links between the appliance, cloud, and phone) should be green.

⚠️ **GitHub.com Fallback** ⚠️