diff --git a/hassio/src/dashboard/hassio-update.ts b/hassio/src/dashboard/hassio-update.ts index 9bb6cc73ec..eec4097e54 100644 --- a/hassio/src/dashboard/hassio-update.ts +++ b/hassio/src/dashboard/hassio-update.ts @@ -16,6 +16,7 @@ import "../../../src/components/ha-svg-icon"; import { extractApiErrorMessage, HassioResponse, + ignoredStatusCodes, } from "../../../src/data/hassio/common"; import { HassioHassOSInfo } from "../../../src/data/hassio/host"; import { @@ -166,7 +167,7 @@ export class HassioUpdate extends LitElement { } catch (err) { // Only show an error if the status code was not expected (user behind proxy) // or no status at all(connection terminated) - if (err.status_code && ![502, 503, 504].includes(err.status_code)) { + if (err.status_code && !ignoredStatusCodes.has(err.status_code)) { showAlertDialog(this, { title: "Update failed", text: extractApiErrorMessage(err), diff --git a/hassio/src/system/hassio-host-info.ts b/hassio/src/system/hassio-host-info.ts index bdd3e801b4..5f44703ac3 100644 --- a/hassio/src/system/hassio-host-info.ts +++ b/hassio/src/system/hassio-host-info.ts @@ -19,7 +19,10 @@ import "../../../src/components/buttons/ha-progress-button"; import "../../../src/components/ha-button-menu"; import "../../../src/components/ha-card"; import "../../../src/components/ha-settings-row"; -import { extractApiErrorMessage } from "../../../src/data/hassio/common"; +import { + extractApiErrorMessage, + ignoredStatusCodes, +} from "../../../src/data/hassio/common"; import { fetchHassioHardwareInfo } from "../../../src/data/hassio/hardware"; import { changeHostOptions, @@ -245,10 +248,13 @@ class HassioHostInfo extends LitElement { try { await rebootHost(this.hass); } catch (err) { - showAlertDialog(this, { - title: "Failed to reboot", - text: extractApiErrorMessage(err), - }); + // Ignore connection errors, these are all expected + if (err.status_code && !ignoredStatusCodes.has(err.status_code)) { + showAlertDialog(this, { + title: "Failed to reboot", + text: extractApiErrorMessage(err), + }); + } } button.progress = false; } @@ -272,10 +278,13 @@ class HassioHostInfo extends LitElement { try { await shutdownHost(this.hass); } catch (err) { - showAlertDialog(this, { - title: "Failed to shutdown", - text: extractApiErrorMessage(err), - }); + // Ignore connection errors, these are all expected + if (err.status_code && !ignoredStatusCodes.has(err.status_code)) { + showAlertDialog(this, { + title: "Failed to shutdown", + text: extractApiErrorMessage(err), + }); + } } button.progress = false; } diff --git a/src/data/hassio/common.ts b/src/data/hassio/common.ts index 4ab432b855..ad315096a3 100644 --- a/src/data/hassio/common.ts +++ b/src/data/hassio/common.ts @@ -13,3 +13,5 @@ export const extractApiErrorMessage = (error: any): string => { : error.body || "Unknown error, see logs" : error; }; + +export const ignoredStatusCodes = new Set([502, 503, 504]);