Skip to content

sendspin server doesn't work offline #260

Description

@gdetrez

When trying to run sendspin serve while not connencted to a network, I get the following exception:

INFO:aiosendspin.server.server:Starting Sendspin server on port 8927
INFO:aiosendspin.server.server:Sendspin server started successfully on 0.0.0.0:8927
ERROR:aiosendspin.server.server:Failed to start server on 0.0.0.0:8927: [Errno 19] No such device
Server error: [Errno 19] No such device
Traceback (most recent call last):
  File "/home/perso/.local/share/uv/tools/sendspin/lib64/python3.14/site-packages/sendspin/cli.py", line 738, in main
    return asyncio.run(_run_serve_mode(args))
           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/asyncio/runners.py", line 204, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "/usr/lib64/python3.14/asyncio/runners.py", line 127, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/usr/lib64/python3.14/asyncio/base_events.py", line 719, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "/home/perso/.local/share/uv/tools/sendspin/lib64/python3.14/site-packages/sendspin/cli.py", line 693, in _run_serve_mode
    return await run_server(serve_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/perso/.local/share/uv/tools/sendspin/lib64/python3.14/site-packages/sendspin/serve/__init__.py", line 195, in run_server
    await server.start_server(port=port, discover_clients=False)
  File "/home/perso/.local/share/uv/tools/sendspin/lib64/python3.14/site-packages/aiosendspin/server/server.py", line 692, in start_server
    self._zc = AsyncZeroconf(
               ~~~~~~~~~~~~~^
        ip_version=IPVersion.V4Only,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        interfaces=[host] if host != "0.0.0.0" else InterfaceChoice.Default,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/perso/.local/share/uv/tools/sendspin/lib64/python3.14/site-packages/zeroconf/asyncio.py", line 170, in __init__
    self.zeroconf = zc or Zeroconf(
                          ~~~~~~~~^
        interfaces=interfaces,
        ^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
        apple_p2p=apple_p2p,
        ^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/perso/.local/share/uv/tools/sendspin/lib64/python3.14/site-packages/zeroconf/_core.py", line 202, in __init__
    listen_socket, respond_sockets = create_sockets(interfaces, unicast, ip_version, apple_p2p=apple_p2p)
                                     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/perso/.local/share/uv/tools/sendspin/lib64/python3.14/site-packages/zeroconf/_utils/net.py", line 459, in create_sockets
    add_multicast_member(cast(socket.socket, listen_socket), interface)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/perso/.local/share/uv/tools/sendspin/lib64/python3.14/site-packages/zeroconf/_utils/net.py", line 350, in add_multicast_member
    listen_socket.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, _value)
    ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 19] No such device
ERROR:asyncio:Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7fdfab3dde80>

Some more context about my usecase: I'm trying to troubleshoot an esphome sendspin speaker, and I wanted to try a simple setup where the speaker connects directly to my laptop running an access point, and use sendspin-cli to stream a (local) audio file to it.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions