{"record":{"id":"94db48592cecee18","repo":"home-assistant/core","slug":"streaming-not-supported","errorCode":null,"errorMessage":"streaming_not_supported","messagePattern":"streaming_not_supported","errorType":"exception","errorClass":"HomeAssistantError","httpStatus":null,"severity":"error","filePath":"homeassistant/components/apple_tv/media_player.py","lineNumber":389,"sourceCode":"            else:\n                media_id = async_process_play_media_url(self.hass, play_item.url)\n            media_type = MediaType.MUSIC\n\n        use_stream_file = self._is_feature_available(FeatureName.StreamFile) and (\n            media_type == MediaType.MUSIC or await is_streamable(media_id)\n        )\n\n        try:\n            if use_stream_file:\n                _LOGGER.debug(\"Streaming %s via RAOP\", media_id)\n                await self.atv.stream.stream_file(media_id)\n            elif self._is_feature_available(FeatureName.PlayUrl) and (\n                (parsed_url := URL(media_id)).is_absolute() and parsed_url.host\n            ):\n                _LOGGER.debug(\"Playing %s via AirPlay\", media_id)\n                await self.atv.stream.play_url(media_id)\n            else:\n                raise HomeAssistantError(\n                    translation_domain=DOMAIN,\n                    translation_key=\"streaming_not_supported\",\n                )\n        except exceptions.NotSupportedError as ex:\n            raise HomeAssistantError(\n                translation_domain=DOMAIN,\n                translation_key=\"streaming_not_supported\",\n            ) from ex\n        except (\n            exceptions.BlockedStateError,\n            exceptions.ConnectionLostError,\n            exceptions.InvalidStateError,\n            exceptions.OperationTimeoutError,\n            exceptions.PlaybackError,\n            exceptions.ProtocolError,\n        ) as ex:\n            raise HomeAssistantError(\n                translation_domain=DOMAIN,","sourceCodeStart":371,"sourceCodeEnd":407,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/apple_tv/media_player.py#L371-L407","documentation":"HomeAssistantError with translation key 'streaming_not_supported' raised when playing media on an Apple TV where neither streaming path is available: the media id is not usable with RAOP stream_file, and the device lacks the PlayUrl feature (or the URL is not absolute/has no host). It surfaces as a user-facing action error localized from the integration's strings.json.","triggerScenarios":"Calling play_media with a media_id that is neither a local file/stream RAOP can handle nor an absolute http(s) URL while the device has no FeatureName.PlayUrl; e.g. a relative path, a non-URL string, or a URL passed to a device where AirPlay play_url is unsupported.","commonSituations":"Scripts sending a plain name or playlist id as media_id; device model/tvOS version without play_url support; URL construction bug in a calling automation producing 'file.mp3' instead of 'http://host/file.mp3'.","solutions":["Pass an absolute URL including scheme and host (e.g. http://192.168.1.10/audio.mp3) served from a host reachable by the Apple TV","Check the device's supported features in the integration (play_url availability) before sending URLs","For local files, ensure they are exposed over HTTP(S) rather than relying on stream_file on unsupported setups"],"exampleFix":"# before\naction:\n  service: media_player.play_media\n  target: {entity_id: media_player.apple_tv}\n  data: {media_content_type: url, media_content_id: \"track.mp3\"}\n# after\naction:\n  service: media_player.play_media\n  target: {entity_id: media_player.apple_tv}\n  data: {media_content_type: url, media_content_id: \"http://192.168.1.10/media/track.mp3\"}","handlingStrategy":"validation","validationCode":"from yarl import URL\n\ndef is_playable_url(media_id: str) -> bool:\n    u = URL(media_id)\n    return u.is_absolute() and bool(u.host)","typeGuard":null,"tryCatchPattern":"try:\n    await hass.services.async_call(\"media_player\", \"play_media\", {...})\nexcept HomeAssistantError as ex:\n    if \"streaming_not_supported\" in str(ex) or ex.translation_key == \"streaming_not_supported\":\n        # fall back to casting/TTS alternative","preventionTips":["Always send absolute URLs with scheme+host to play_media","Serve local media over HTTP reachable from the TV","Check the entity's supported features before scripting playback"],"tags":["home-assistant","apple-tv","media-player","streaming","pyatv"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}