home-assistant/core · error · HomeAssistantError

Unsupported URL

Error message

Unsupported URL

What it means

Raised by fetch_blueprint_from_url when no registered FETCH_FUNCTIONS handler (community forum, GitHub) can import the given URL. Each fetcher raises UnsupportedUrl internally and is suppressed; only when the whole list is exhausted does this generic HomeAssistantError surface. It means the URL scheme/host is not one of the supported blueprint sharing sites.

Source

Thrown at homeassistant/components/blueprint/importer.py:287

    fetch_blueprint_from_github_gist_url,
    fetch_blueprint_from_website_url,
    fetch_blueprint_from_generic_url,
)


async def fetch_blueprint_from_url(hass: HomeAssistant, url: str) -> ImportedBlueprint:
    """Get a blueprint from a url.

    The returned blueprint will only be validated with BLUEPRINT_SCHEMA, not the domain
    specific schema.
    """
    for func in FETCH_FUNCTIONS:
        with suppress(UnsupportedUrl):
            imported_bp = await func(hass, url)
            imported_bp.blueprint.update_metadata(source_url=url)
            return imported_bp

    raise HomeAssistantError("Unsupported URL")

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Use a URL from a supported source: a community.home-assistant.io topic URL or a GitHub URL accepted by the GitHub fetch function
  2. If the blueprint is on another site, download the YAML manually and place it under config/blueprints/<domain>/<name>.yaml
  3. Verify the URL opens in a browser and points at the blueprint topic/repo itself, not a screenshot or redirect page

Example fix

# before
await fetch_blueprint_from_url(hass, "https://pastebin.com/raw/abc123")

# after
await fetch_blueprint_from_url(hass, "https://community.home-assistant.io/t/123456")
Defensive patterns

Strategy: try-catch

Validate before calling

from urllib.parse import urlparse

SUPPORTED_HOSTS = {"community.home-assistant.io", "github.com", "www.github.com"}

def url_supported(url: str) -> bool:
    return urlparse(url).hostname in SUPPORTED_HOSTS

Try / catch

try:
    bp = await fetch_blueprint_from_url(hass, url)
except HomeAssistantError as err:
    if "Unsupported URL" in str(err):
        # prompt user for a community forum or GitHub link
        ...

Prevention

When it happens

Trigger: Calling the blueprint.import_panel / import_blueprint websocket or the 'blueprint' import flow with a URL whose host is not community.home-assistant.io or github.com (e.g. a pastebin, a GitLab link, a typo like 'http://comunity.home-assistant.io/t/...').

Common situations: User pastes a link to a blueprint forum topic that is actually a redirect or an external mirror; using a GitHub URL to a directory instead of a raw file; trailing typos in the domain; blueprint sharing from unsupported platforms.

Related errors


AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14). Data as JSON: /api/errors/4fdad25dc9ec80e0. Report an issue: GitHub.