From 81df19dd4b8df5b058ea5127ecba794f1c6f766c Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 21 Jan 2026 12:18:52 -1000 Subject: [PATCH] handle failure --- .../components/http_request/update/http_request_update.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/esphome/components/http_request/update/http_request_update.cpp b/esphome/components/http_request/update/http_request_update.cpp index b4e9a156db9..bf6cc3448b8 100644 --- a/esphome/components/http_request/update/http_request_update.cpp +++ b/esphome/components/http_request/update/http_request_update.cpp @@ -78,6 +78,11 @@ void HttpRequestUpdate::update_task(void *params) { } else { ESP_LOGE(TAG, "Error reading manifest: %d", read_result.error_code); } + // Defer to main loop to avoid race condition on component_state_ read-modify-write + this_update->defer([this_update]() { this_update->status_set_error(LOG_STR("Failed to read manifest")); }); + allocator.deallocate(data, container->content_length); + container->end(); + UPDATE_RETURN; } size_t read_index = container->get_bytes_read();