Google cast broken

I did a update of pychromecast now i cant get google cast installed, any help would be appreciated

Error occurred loading configuration flow for integration cast: No module named 'pychromecast.error'

Where, how and why did you update the pychromecast library? Are you running HA in venv?

I cloned the repo https://github.com/home-assistant-libs/pychromecast and ran the requirements and setup.
I updated in hopes that it would help fix the other chromecast issues i was getting

I am running in a virtual environment in the sense that its a Arch VM that only runs HA but i am not running in in Venv

Error handling request
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/aiohttp/web_protocol.py", line 418, in start
    resp = await task
  File "/usr/lib/python3.8/site-packages/aiohttp/web_app.py", line 458, in _handle
    resp = await handler(request)
  File "/usr/lib/python3.8/site-packages/aiohttp/web_middlewares.py", line 119, in impl
    return await handler(request)
  File "/usr/lib/python3.8/site-packages/homeassistant/components/http/real_ip.py", line 39, in real_ip_middleware
    return await handler(request)
  File "/usr/lib/python3.8/site-packages/homeassistant/components/http/ban.py", line 73, in ban_middleware
    return await handler(request)
  File "/usr/lib/python3.8/site-packages/homeassistant/components/http/auth.py", line 127, in auth_middleware
    return await handler(request)
  File "/usr/lib/python3.8/site-packages/homeassistant/components/http/view.py", line 129, in handle
    result = await result
  File "/usr/lib/python3.8/site-packages/homeassistant/components/config/config_entries.py", line 112, in post
    return await super().post(request)
  File "/usr/lib/python3.8/site-packages/homeassistant/components/http/data_validator.py", line 60, in wrapper
    result = await method(view, request, *args, **kwargs)
  File "/usr/lib/python3.8/site-packages/homeassistant/helpers/data_entry_flow.py", line 69, in post
    result = await self._flow_mgr.async_init(
  File "/usr/lib/python3.8/site-packages/homeassistant/data_entry_flow.py", line 117, in async_init
    flow = await self.async_create_flow(handler, context=context, data=data)
  File "/usr/lib/python3.8/site-packages/homeassistant/config_entries.py", line 521, in async_create_flow
    integration.get_platform("config_flow")
  File "/usr/lib/python3.8/site-packages/homeassistant/loader.py", line 272, in get_platform
    cache[full_name] = importlib.import_module(
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/lib/python3.8/site-packages/homeassistant/components/cast/__init__.py", line 4, in <module>
    from . import home_assistant_cast
  File "/usr/lib/python3.8/site-packages/homeassistant/components/cast/home_assistant_cast.py", line 4, in <module>
    from pychromecast.controllers.homeassistant import HomeAssistantController
  File "/var/lib/hass/deps/lib/python3.8/site-packages/pychromecast/__init__.py", line 12, in <module>
    from . import socket_client
  File "/var/lib/hass/deps/lib/python3.8/site-packages/pychromecast/socket_client.py", line 23, in <module>
    from . import cast_channel_pb2
  File "/var/lib/hass/deps/lib/python3.8/site-packages/pychromecast/cast_channel_pb2.py", line 11, in <module>
    from google.protobuf import descriptor_pb2
  File "/var/lib/hass/deps/lib/python3.8/site-packages/google/protobuf/descriptor_pb2.py", line 1837, in <module>
    FileDescriptorSet = _reflection.GeneratedProtocolMessageType('FileDescriptorSet', (_message.Message,), dict(
TypeError: expected bytes, Descriptor found
Home Assistant has started!

And

Logger: homeassistant.core
Source: deps/lib/python3.8/site-packages/google/protobuf/descriptor_pb2.py:1837
First occurred: 4:03:30 PM (22 occurrences)
Last logged: 4:03:30 PM

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/homeassistant/data_entry_flow.py", line 117, in async_init
    flow = await self.async_create_flow(handler, context=context, data=data)
  File "/usr/lib/python3.8/site-packages/homeassistant/config_entries.py", line 521, in async_create_flow
    integration.get_platform("config_flow")
  File "/usr/lib/python3.8/site-packages/homeassistant/loader.py", line 272, in get_platform
    cache[full_name] = importlib.import_module(
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/lib/python3.8/site-packages/homeassistant/components/cast/__init__.py", line 4, in <module>
    from . import home_assistant_cast
  File "/usr/lib/python3.8/site-packages/homeassistant/components/cast/home_assistant_cast.py", line 4, in <module>
    from pychromecast.controllers.homeassistant import HomeAssistantController
  File "/var/lib/hass/deps/lib/python3.8/site-packages/pychromecast/__init__.py", line 12, in <module>
    from . import socket_client
  File "/var/lib/hass/deps/lib/python3.8/site-packages/pychromecast/socket_client.py", line 23, in <module>
    from . import cast_channel_pb2
  File "/var/lib/hass/deps/lib/python3.8/site-packages/pychromecast/cast_channel_pb2.py", line 11, in <module>
    from google.protobuf import descriptor_pb2
  File "/var/lib/hass/deps/lib/python3.8/site-packages/google/protobuf/descriptor_pb2.py", line 1837, in <module>
    FileDescriptorSet = _reflection.GeneratedProtocolMessageType('FileDescriptorSet', (_message.Message,), dict(
TypeError: expected bytes, Descriptor found

So how are you running Home Assistant? Docker?

Also which version of Home Assistant are you using?

Just running it natively in the machine using the Home-Assistant package https://wiki.archlinux.org/index.php/Home_Assistant

I am running Home Assistant 0.111.3

Unfortunately that’s not a supported install method for Home Assistant. Also barely anyone runs Home Assistant like this, I’m not sure you’ll get any help here.
In my opinion, you’re doing it the hard way running Home Assistant like this. You shouldn’t need to update libraries yourself, etc.

It worked great in .109, it broke in .111 i dont understand what changed. i only updated the pychromecast manually in hopes it would fix the original error

I did try to run it in docker, the issue i ran into was it wouldn’t discover anything because its behind the docker network, i think i would have to map every port in the docker config to get that working

I assume Home Assistant expects a certain version of the underlying python libraries, that’s why this may not work, just a guess.

What was the error that you got? Can you rollback to 0.109 and make it work again?
Was anything in the release notes for 0.110 or 0.111 about chromecast?

No, you can run the docker container with network_mode: host, this way the docker container uses the host network. See here for more details.

On what kind of device are you running this Arch VM? Pi? Nuc? Home Server?
Is there a specific reason that you choose to use an Arch VM for your HA machine?

1 Like

I just run Arch on everything and am pretty comfortable with it so i decided to spin up a VM of it to run HA, its running on a Dell Powervault NX3000 W/96Gigs Ram & Dual Intel Xeon 12 Core Cpus.

But i must say im pretty new to Docker and using Network_mode: host worked flawlessly :slight_smile: thank you so much, i was able to move my config over to a Docker container running on the same machine and everything is working now

1 Like