[web_server] Fix download list where external_components has a substitution value (#8911)

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Jesse Hills 2025-05-27 09:08:16 +12:00 committed by GitHub
parent af7b1a3a23
commit 73771d5c50
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -601,10 +601,12 @@ class DownloadListRequestHandler(BaseHandler):
loop = asyncio.get_running_loop()
try:
downloads_json = await loop.run_in_executor(None, self._get, configuration)
except vol.Invalid:
except vol.Invalid as exc:
_LOGGER.exception("Error while fetching downloads", exc_info=exc)
self.send_error(404)
return
if downloads_json is None:
_LOGGER.error("Configuration %s not found", configuration)
self.send_error(404)
return
self.set_status(200)
@ -618,6 +620,7 @@ class DownloadListRequestHandler(BaseHandler):
if storage_json is None:
return None
try:
config = yaml_util.load_yaml(settings.rel_path(configuration))
if const.CONF_EXTERNAL_COMPONENTS in config:
@ -626,6 +629,8 @@ class DownloadListRequestHandler(BaseHandler):
)
do_external_components_pass(config)
except vol.Invalid:
_LOGGER.info("Could not parse `external_components`, skipping")
from esphome.components.esp32 import VARIANTS as ESP32_VARIANTS