`sendspin server` doesn't work offline

Open
#260 3 comments 1 reaction 2 assignees View on GitHub

@balloob is already working on this.

Since Jun 5, 2026.

  • #261 by @copilot-swe-agent — closed without merging

Assessment

This issue has not been assessed yet.

Description

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.

Dominant language
Python
Stars
190
Forks
36
Avg merge
11d 19h
Merged PRs (30d)
2

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Sendspin/sendspin-python-cli

All issues in Sendspin/sendspin-python-cli

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.