home-assistant / home-assistant/iOS

UI Bug: External URL rejects .xyz TLD and "Use Anyway" button enters infinite loop on iOS 26

Open
#4,144 0 comments 0 reactions 0 assignees View on GitHub
bug ios
Dominant language
Swift
Stars
2.4k
Forks
520
Avg merge
7h 27m
Merged PRs (30d)
264

Description

**Device Description:** Home Assistant iOS App Version: 2025.12.1, Home Assistant Core Version: 2025.12.1, iOS Version: 26.1, Device Model: iPhone 16 Pro Max

**Describe the bug:** The App UI for "External URL" contains a validation check for the "URL" field that rejects the .xyz top-level domain as an "Incorrect Format." While the app provides a "Use Anyway" button in the error popup, this button fails to function as an override. Tapping "Use Anyway" immediately triggers the same error message in an infinite loop, preventing the user from saving the configuration.

**To Reproduce:**

1. Open the Home Assistant iOS App (v2025.12.1).
2. Navigate to Settings > Companion App > Server Name (Home).
3. Select External URL.
4. Ensure the Home Assistant Cloud toggle is set to OFF.
5. Manually type a URL ending in .xyz (e.g., https://ha.example-domain.xyz) in the input field.
6. Select SAVE, then observe the "Incorrect Format" error.
7. Tap "Use Anyway" and observe that the error persists and the URL is not saved. Tapping "Edit URL" returns to the input field.

**Expected behaviour:** The app should recognise .xyz as a valid top-level domain. Furthermore, the "Use Anyway" button should act as a hard override to allow the user to save the URL regardless of internal validation logic.
**Additional context:**

- This is a UI-blocking bug occurring before any network/server/dns connection is even attempted.
- Verification: The exact URL works perfectly in mobile Safari on the same iPhone and in desktop browsers, confirming the DNS, Cloudflare Tunnel, and server are fully functional.
- A/B Test: Changing the extension to .com or .net (e.g., https://ha.example-domain.com) does not cause the "Format Error" to eventuate, however "Server Error" pops as you would expect with a validation test. This confirms the bug is specifically tied to the TLD validation logic in the External URL text input field.

Regards

Shane

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.