From 247abee85a6ed39d7a395cb8c1f86e1b86222785 Mon Sep 17 00:00:00 2001 From: marcinbauer85 Date: Fri, 8 May 2026 09:04:40 +0200 Subject: [PATCH 1/2] Fix "Skip and finish" button text when area picker is cleared Clearing the area picker still added the device to `_deviceUpdate` with an empty area, making `Object.keys(_deviceUpdate).length` truthy and showing "Finish" instead of "Skip and finish". Fix checks for meaningful updates (non-empty name or area) instead of mere presence of entries in the update map. Co-Authored-By: Claude Sonnet 4.6 (1M context) --- src/dialogs/config-flow/step-flow-create-entry.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/dialogs/config-flow/step-flow-create-entry.ts b/src/dialogs/config-flow/step-flow-create-entry.ts index 632dc45cd646..04d9a351f1be 100644 --- a/src/dialogs/config-flow/step-flow-create-entry.ts +++ b/src/dialogs/config-flow/step-flow-create-entry.ts @@ -196,7 +196,10 @@ class StepFlowCreateEntry extends LitElement { ${localize( `ui.panel.config.integrations.config_flow.${ - !this.devices.length || Object.keys(this._deviceUpdate).length + !this.devices.length || + Object.values(this._deviceUpdate).some( + (update) => update.name || update.area + ) ? "finish" : "finish_skip" }` From 63f4bd677cb909aaeb1edb365fd12b20ca9620b6 Mon Sep 17 00:00:00 2001 From: marcinbauer85 Date: Fri, 8 May 2026 09:05:13 +0200 Subject: [PATCH 2/2] Fix config flow error showing "Unknown error" instead of actual message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `handleFetchPromise` throws `{ error, body, status_code }` — not a standard Error instance — so `err.message` is always undefined. The error handler only checked `err.message || err.body`, missing `err.error` entirely, causing every network-level failure to show "Unknown error". Also extract `err.body.message` when the body is a JSON object rather than JSON-stringifying the whole object. Co-Authored-By: Claude Sonnet 4.6 (1M context) --- src/dialogs/config-flow/dialog-data-entry-flow.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/dialogs/config-flow/dialog-data-entry-flow.ts b/src/dialogs/config-flow/dialog-data-entry-flow.ts index 5d449a645736..df6af09a9932 100644 --- a/src/dialogs/config-flow/dialog-data-entry-flow.ts +++ b/src/dialogs/config-flow/dialog-data-entry-flow.ts @@ -93,7 +93,10 @@ class DataEntryFlowDialog extends LitElement { ); } catch (err: any) { this.closeDialog(); - let message = err.message || err.body || "Unknown error"; + const bodyMessage = + typeof err.body === "object" ? err.body?.message : err.body; + let message = + err.message || bodyMessage || err.error || "Unknown error"; if (typeof message !== "string") { message = JSON.stringify(message); } @@ -120,7 +123,10 @@ class DataEntryFlowDialog extends LitElement { ); } catch (err: any) { this.closeDialog(); - let message = err.message || err.body || "Unknown error"; + const bodyMessage = + typeof err.body === "object" ? err.body?.message : err.body; + let message = + err.message || bodyMessage || err.error || "Unknown error"; if (typeof message !== "string") { message = JSON.stringify(message); }