Skip to content

[BUG] Pulseaudio throws an Error with traceback #356

@DaanSelen

Description

@DaanSelen

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Hello everyonebody. I have recently switched to the new WebTop version. and I am curious to the following error and why it is happening and what is needed to silence it through fix or supression.

INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 49486)
INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 1024, "height": 768}
INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 49486)
INFO:data_websocket:Attempting to establish PulseAudio connection...
Failed to create secure directory (/defaults): Permission denied
ERROR:data_websocket:Initial PulseAudio connection failed: Failed to connect to pulseaudio server
Traceback (most recent call last):
  File "/lsiopy/lib/python3.13/site-packages/selkies/selkies.py", line 1751, in ws_handler
    pulse = pulsectl.Pulse("selkies-mic-handler")
  File "/lsiopy/lib/python3.13/site-packages/pulsectl/pulsectl.py", line 382, in __init__
    try: self.connect(autospawn=True)
         ~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/lsiopy/lib/python3.13/site-packages/pulsectl/pulsectl.py", line 445, in connect
    if self.connected is False: raise PulseError('Failed to connect to pulseaudio server')
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pulsectl.pulsectl.PulseError: Failed to connect to pulseaudio server
INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 8000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'h264_streaming_mode': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 1024, 'manualHeight': 768, 'audioBitRate': 320000, 'videoBufferSize': 0, 'initialClientWidth': 2496, 'initialClientHeight': 1238}

Expected Behavior

I expect no errors when launching the webtop, the thing running in it is a game called Stardew Valley.

Steps To Reproduce

The following is not for "advertising" or such purposes. It is to show the way I create the environment and when it happens:

https://github.com/DaanSelen/stardew-multiplayer

It happens in this container environment. Specifically through the compose.

Environment

- OS: Debian GNU/Linux
- How docker service was installed: Docker compose (or if you meant Docker Engine, then through the official method from docker.com)

CPU architecture

x86-64

Docker creation

docker compose up -d

Container logs

Expanded logs:

WARNING:data_websocket:Cannot broadcast cursor data: no clients connected or server not ready.
WARNING:data_websocket:Cannot broadcast cursor data: no clients connected or server not ready.
[11:31:03 TRACE game] Window_ClientSizeChanged(); Window.ClientBounds={X:0 Y:0 Width:1024 Height:768}
INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 49486)
INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 1024, "height": 768}
INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 49486)
INFO:data_websocket:Attempting to establish PulseAudio connection...
Failed to create secure directory (/defaults): Permission denied
ERROR:data_websocket:Initial PulseAudio connection failed: Failed to connect to pulseaudio server
Traceback (most recent call last):
  File "/lsiopy/lib/python3.13/site-packages/selkies/selkies.py", line 1751, in ws_handler
    pulse = pulsectl.Pulse("selkies-mic-handler")
  File "/lsiopy/lib/python3.13/site-packages/pulsectl/pulsectl.py", line 382, in __init__
    try: self.connect(autospawn=True)
         ~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/lsiopy/lib/python3.13/site-packages/pulsectl/pulsectl.py", line 445, in connect
    if self.connected is False: raise PulseError('Failed to connect to pulseaudio server')
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pulsectl.pulsectl.PulseError: Failed to connect to pulseaudio server
INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 8000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'h264_streaming_mode': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 1024, 'manualHeight': 768, 'audioBitRate': 320000, 'videoBufferSize': 0, 'initialClientWidth': 2496, 'initialClientHeight': 1238}
INFO:gst_app_resize:on_resize_handler attempting resize for: 2496x1238
INFO:gst_app_resize:App dimensions updated to 2496x1238 before xrandr call.
INFO:gst_app_resize:Mode 2496x1238 not found in xrandr list. Attempting to add for screen 'screen'.
INFO:gst_app_resize:Successfully ran: xrandr --newmode 2496x1238 259.75 2496 2672 2936 3376 1238 1241 1251 1284 -hsync +vsync
INFO:gst_app_resize:Successfully ran: xrandr --addmode screen 2496x1238
INFO:gst_app_resize:Applying xrandr mode '2496x1238' for screen 'screen'.
INFO:gst_app_resize:Successfully applied xrandr mode '2496x1238'.
INFO:gst_app_resize:resize_display('2496x1238') reported success.
WARNING:data_websocket:Pipeline is inactive for the initial client. Forcing a start.
INFO:data_websocket:Video pipeline for x264enc needs to start (was not active or forced).
INFO:data_websocket:Starting x264enc: 2496x1238 @ 60.0fps, CRF: 25, FullFrame: True
INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 2496, "height": 1238}
WARNING:data_websocket:Attempting to start backpressure task, but client_settings_received event is not set or None. The task will wait for this event. Ensure it's set when initial client settings are processed.
INFO:data_websocket:Trying to ensure client_settings_received is set for backpressure task start.
INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').
INFO:data_websocket:x264enc capture started successfully.
INFO:data_websocket:Initial client settings message processed by ws_handler.
INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start.
INFO:data_websocket:Starting pcmflux audio pipeline...
INFO:data_websocket:pcmflux settings: device='', bitrate=320000, channels=2
INFO:data_websocket:Frame-based backpressure logic task started.
INFO:data_websocket:Client settings received, proceeding with backpressure loop.
[pcmflux] Attempting to connect to PulseAudio device: system_default...
INFO:data_websocket:pcmflux audio capture started successfully.
INFO:data_websocket:pcmflux audio chunk broadcasting task started.
Failed to create secure directory (/defaults): Permission denied
[pcmflux] ERROR: pa_simple_new() failed: Connection refused
WARNING:webrtc_input:No clipboard content to send
INFO:data_websocket:Received START_VIDEO for encoder: x264enc
INFO:data_websocket:x264enc pipeline is already capturing.
INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active.
X Shared Memory Extension available.
XShm setup complete for 2496x1238.
CPU cores available: 12

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions