Skip to content

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

@sabbrowne

Description

@sabbrowne

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions