diff --git a/hassio/src/addon-view/hassio-addon-dashboard.ts b/hassio/src/addon-view/hassio-addon-dashboard.ts index cad3861193..4e11853aca 100644 --- a/hassio/src/addon-view/hassio-addon-dashboard.ts +++ b/hassio/src/addon-view/hassio-addon-dashboard.ts @@ -21,6 +21,7 @@ import { extractSearchParam } from "../../../src/common/url/search-params"; import "../../../src/components/ha-circular-progress"; import { fetchHassioAddonInfo, + fetchHassioAddonsInfo, HassioAddonDetails, } from "../../../src/data/hassio/addon"; import { extractApiErrorMessage } from "../../../src/data/hassio/common"; @@ -173,9 +174,16 @@ class HassioAddonDashboard extends LitElement { protected async firstUpdated(): Promise { if (this.route.path === "") { - const addon = extractSearchParam("addon"); - if (addon) { - navigate(this, `/hassio/addon/${addon}`, true); + const requestedAddon = extractSearchParam("addon"); + if (requestedAddon) { + const addonsInfo = await fetchHassioAddonsInfo(this.hass); + const validAddon = addonsInfo.addons + .some((addon) => addon.slug === requestedAddon); + if (!validAddon) { + this._error = this.supervisor.localize("my.error_addon_not_found"); + } else { + navigate(this, `/hassio/addon/${requestedAddon}`, true); + } } } this.addEventListener("hass-api-called", (ev) => this._apiCalled(ev)); diff --git a/src/translations/en.json b/src/translations/en.json index d06592b935..0c7a54aa4d 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -3656,7 +3656,8 @@ "my": { "not_supported": "[%key:ui::panel::my::not_supported%]", "faq_link": "[%key:ui::panel::my::faq_link%]", - "error": "[%key:ui::panel::my::error%]" + "error": "[%key:ui::panel::my::error%]", + "error_addon_not_found": "Add-on not found" }, "system": { "log": {