Skip to content

BLE connection error #879

@andi-h

Description

@andi-h

I use the python SDK to periodically take photos with a GoPro.
After triggering the shutter and download the photo via USB, I use BLE to turn off the GoPro:

async with WirelessGoPro(target="GoPro 2614", interfaces={WirelessGoPro.Interface.BLE}) as gopro:
    await gopro.ble_command.sleep()

It works most of the time, but sometimes i get this exception:

Jan 07 18:00:23 camera-controller[28730]: Traceback (most recent call last):
Jan 07 18:00:23 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_wireless.py", line 395, in open
Jan 07 18:00:23 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_wireless.py", line 645, in _open_ble
Jan 07 18:00:23 camera-controller[28730]:   File "camera-controller/open_gopro/api/builders.py", line 741, in get_value_observable
Jan 07 18:00:23 camera-controller[28730]:   File "camera-controller/open_gopro/domain/gopro_observable.py", line 131, in start
Jan 07 18:00:23 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_base.py", line 111, in enforce_message_rules
Jan 07 18:00:23 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_wireless.py", line 566, in _enforce_message_rules
Jan 07 18:00:23 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_wireless.py", line 804, in _send_ble_message
Jan 07 18:00:23 camera-controller[28730]: RuntimeError: [QueryCmdId.REG_STATUS_VAL_UPDATE] received incorrect response: [FeatureId.QUERY::ActionId.RESPONSE_GET_COHN_STATUS]
Jan 07 18:00:25 bluetoothd[18145]: No matching connection for device
Jan 07 18:00:28 bluetoothd[18145]: profiles/deviceinfo/deviceinfo.c:read_pnpid_cb() Error reading PNP_ID value: Request attribute has encountered an unlikely error
Jan 07 18:00:37 camera-controller[28730]: Traceback (most recent call last):
Jan 07 18:00:37 camera-controller[28730]:   File "camera-controller/asyncio/tasks.py", line 507, in wait_for
Jan 07 18:00:37 camera-controller[28730]:   File "camera-controller/asyncio/queues.py", line 186, in get
Jan 07 18:00:37 camera-controller[28730]: asyncio.exceptions.CancelledError
Jan 07 18:00:37 camera-controller[28730]: The above exception was the direct cause of the following exception:
Jan 07 18:00:37 camera-controller[28730]: Traceback (most recent call last):
Jan 07 18:00:37 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_wireless.py", line 799, in _send_ble_message
Jan 07 18:00:37 camera-controller[28730]:   File "camera-controller/asyncio/tasks.py", line 506, in wait_for
Jan 07 18:00:37 camera-controller[28730]:   File "camera-controller/asyncio/timeouts.py", line 116, in __aexit__
Jan 07 18:00:37 camera-controller[28730]: TimeoutError
Jan 07 18:00:37 camera-controller[28730]: The above exception was the direct cause of the following exception:
Jan 07 18:00:37 camera-controller[28730]: Traceback (most recent call last):
Jan 07 18:00:37 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_wireless.py", line 395, in open
Jan 07 18:00:37 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_wireless.py", line 619, in _open_ble
Jan 07 18:00:37 camera-controller[28730]:   File "camera-controller/open_gopro/api/builders.py", line 402, in wrapper
Jan 07 18:00:37 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_base.py", line 111, in enforce_message_rules
Jan 07 18:00:37 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_wireless.py", line 566, in _enforce_message_rules
Jan 07 18:00:37 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_wireless.py", line 809, in _send_ble_message
Jan 07 18:00:37 camera-controller[28730]: open_gopro.domain.exceptions.ResponseTimeout: Response timeout occurred of 5 seconds
Jan 07 18:00:39 camera-controller[28730]: [ERROR] | dbus_fast.message_bus | 2026-01-07 18:00:39,777 | A message handler raised an exception: Connection terminated: BLE connection terminated unexpectedly.
Jan 07 18:00:39 camera-controller[28730]: Traceback (most recent call last):
Jan 07 18:00:39 camera-controller[28730]:   File "src/dbus_fast/message_bus.py", line 819, in dbus_fast.message_bus.BaseMessageBus._process_message
Jan 07 18:00:39 camera-controller[28730]:   File "camera-controller/bleak/backends/bluezdbus/manager.py", line 1016, in _parse_msg
Jan 07 18:00:39 camera-controller[28730]:   File "camera-controller/bleak/backends/bluezdbus/client.py", line 173, in on_connected_changed
Jan 07 18:00:39 camera-controller[28730]:   File "camera-controller/open_gopro/network/ble/adapters/bleak_wrapper.py", line 188, in disconnect_cb
Jan 07 18:00:39 camera-controller[28730]:   File "camera-controller/open_gopro/gopro_wireless.py", line 778, in _disconnect_handler
Jan 07 18:00:39 camera-controller[28730]: open_gopro.domain.exceptions.ConnectionTerminated: Connection terminated: BLE connection terminated unexpectedly.
Jan 07 18:00:39 bluetoothd[18145]: No matching connection for device

I use open_gopro 0.22.0 with this patch.

Hardware

  • Camera: Hero12 and Hero13 (the error occurs way more often on Hero12)
  • Raspberry Pi Zero 2W (latest Raspberry OS based on Debian 13; bluez 5.82)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageNeeds to be reviewed and assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions