blueman icon indicating copy to clipboard operation
blueman copied to clipboard

Right-click doesn't work

Open awvalenti opened this issue 4 months ago • 7 comments

On Linux Mint Cinnamon 21.3 64-bit: after I pair a device, I can right-click it to trust, block etc. But, next day, probably after a reboot, I can't right-click it anymore (nothing happens). Only after I remove the device I can right-click it again. It's annoying, I have to remove an already paired device and pair it again.

awvalenti avatar Jul 30 '25 13:07 awvalenti

Can you close blueman-manager, run blueman-manager --loglevel debug from a terminal, do the action that is faling (right click) and post the output of the terminal here.

infirit avatar Jul 30 '25 14:07 infirit

Nice idea!

It seems to be related to the action of blocking mobile phones. Among many devices, it only happened to mobile phones, only after blocking them and probably restarting the app.

Here are the logs for left-clicking and right-clicking. I replaced actual device name with [ NAME OF DEVICE HERE ].

Left-clicking:

blueman-manager 15.19.16 DEBUG    ManagerDeviceMenu:306 generate  : [ NAME OF DEVICE HERE ]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 92, in get
    prop = self.call_sync(
gi.repository.GLib.GError: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: No such interface 'org.bluez.Network1' (16)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerMenu.py", line 229, in on_device_selected
    self.device_menu = ManagerDeviceMenu(self.blueman)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 83, in __init__
    self.generate()
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 308, in generate
    items = [item for plugin in self.Blueman.Plugins.get_loaded_plugins(MenuItemsProvider)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 309, in <listcomp>
    for item in plugin.on_request_menu_items(self, self.SelectedDevice)]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in on_request_menu_items
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in <listcomp>
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/services/meta/NetworkService.py", line 25, in connectable
    return not self.available or not self._service["Connected"]
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 135, in __getitem__
    return self.get(key)
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 106, in get
    raise parse_dbus_error(e)
blueman.bluez.errors.BluezDBusException: org.freedesktop.DBus.Error.InvalidArgs No such interface 'org.bluez.Network1'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 153, in apport_excepthook
    with os.fdopen(os.open(pr_filename,
FileNotFoundError: [Errno 2] Arquivo ou diretório inexistente: '/var/crash/_usr_bin_blueman-manager.1000.crash'

Original exception was:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 92, in get
    prop = self.call_sync(
gi.repository.GLib.GError: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: No such interface 'org.bluez.Network1' (16)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerMenu.py", line 229, in on_device_selected
    self.device_menu = ManagerDeviceMenu(self.blueman)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 83, in __init__
    self.generate()
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 308, in generate
    items = [item for plugin in self.Blueman.Plugins.get_loaded_plugins(MenuItemsProvider)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 309, in <listcomp>
    for item in plugin.on_request_menu_items(self, self.SelectedDevice)]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in on_request_menu_items
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in <listcomp>
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/services/meta/NetworkService.py", line 25, in connectable
    return not self.available or not self._service["Connected"]
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 135, in __getitem__
    return self.get(key)
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 106, in get
    raise parse_dbus_error(e)
blueman.bluez.errors.BluezDBusException: org.freedesktop.DBus.Error.InvalidArgs No such interface 'org.bluez.Network1'

Right-clicking:

blueman-manager 15.20.20 DEBUG    ManagerDeviceMenu:306 generate  :  [ NAME OF DEVICE HERE ]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 92, in get
    prop = self.call_sync(
gi.repository.GLib.GError: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: No such interface 'org.bluez.Network1' (16)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceList.py", line 246, in on_event_clicked
    self.menu.popup_at_pointer(event)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 90, in popup_at_pointer
    self.generate()
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 308, in generate
    items = [item for plugin in self.Blueman.Plugins.get_loaded_plugins(MenuItemsProvider)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 309, in <listcomp>
    for item in plugin.on_request_menu_items(self, self.SelectedDevice)]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in on_request_menu_items
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in <listcomp>
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/services/meta/NetworkService.py", line 25, in connectable
    return not self.available or not self._service["Connected"]
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 135, in __getitem__
    return self.get(key)
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 106, in get
    raise parse_dbus_error(e)
blueman.bluez.errors.BluezDBusException: org.freedesktop.DBus.Error.InvalidArgs No such interface 'org.bluez.Network1'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 153, in apport_excepthook
    with os.fdopen(os.open(pr_filename,
FileNotFoundError: [Errno 2] Arquivo ou diretório inexistente: '/var/crash/_usr_bin_blueman-manager.1000.crash'

Original exception was:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 92, in get
    prop = self.call_sync(
gi.repository.GLib.GError: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: No such interface 'org.bluez.Network1' (16)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceList.py", line 246, in on_event_clicked
    self.menu.popup_at_pointer(event)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 90, in popup_at_pointer
    self.generate()
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 308, in generate
    items = [item for plugin in self.Blueman.Plugins.get_loaded_plugins(MenuItemsProvider)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 309, in <listcomp>
    for item in plugin.on_request_menu_items(self, self.SelectedDevice)]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in on_request_menu_items
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in <listcomp>
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/services/meta/NetworkService.py", line 25, in connectable
    return not self.available or not self._service["Connected"]
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 135, in __getitem__
    return self.get(key)
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 106, in get
    raise parse_dbus_error(e)
blueman.bluez.errors.BluezDBusException: org.freedesktop.DBus.Error.InvalidArgs No such interface 'org.bluez.Network1'
blueman-manager 15.20.20 DEBUG    ManagerDeviceMenu:306 generate  : [ NAME OF DEVICE HERE ]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 92, in get
    prop = self.call_sync(
gi.repository.GLib.GError: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: No such interface 'org.bluez.Network1' (16)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerMenu.py", line 229, in on_device_selected
    self.device_menu = ManagerDeviceMenu(self.blueman)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 83, in __init__
    self.generate()
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 308, in generate
    items = [item for plugin in self.Blueman.Plugins.get_loaded_plugins(MenuItemsProvider)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 309, in <listcomp>
    for item in plugin.on_request_menu_items(self, self.SelectedDevice)]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in on_request_menu_items
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in <listcomp>
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/services/meta/NetworkService.py", line 25, in connectable
    return not self.available or not self._service["Connected"]
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 135, in __getitem__
    return self.get(key)
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 106, in get
    raise parse_dbus_error(e)
blueman.bluez.errors.BluezDBusException: org.freedesktop.DBus.Error.InvalidArgs No such interface 'org.bluez.Network1'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 153, in apport_excepthook
    with os.fdopen(os.open(pr_filename,
FileNotFoundError: [Errno 2] Arquivo ou diretório inexistente: '/var/crash/_usr_bin_blueman-manager.1000.crash'

Original exception was:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 92, in get
    prop = self.call_sync(
gi.repository.GLib.GError: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: No such interface 'org.bluez.Network1' (16)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerMenu.py", line 229, in on_device_selected
    self.device_menu = ManagerDeviceMenu(self.blueman)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 83, in __init__
    self.generate()
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 308, in generate
    items = [item for plugin in self.Blueman.Plugins.get_loaded_plugins(MenuItemsProvider)
  File "/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 309, in <listcomp>
    for item in plugin.on_request_menu_items(self, self.SelectedDevice)]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in on_request_menu_items
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/plugins/manager/Services.py", line 48, in <listcomp>
    connectable_services = [service for service in services if service.connectable]
  File "/usr/lib/python3/dist-packages/blueman/services/meta/NetworkService.py", line 25, in connectable
    return not self.available or not self._service["Connected"]
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 135, in __getitem__
    return self.get(key)
  File "/usr/lib/python3/dist-packages/blueman/bluez/Base.py", line 106, in get
    raise parse_dbus_error(e)
blueman.bluez.errors.BluezDBusException: org.freedesktop.DBus.Error.InvalidArgs No such interface 'org.bluez.Network1'

awvalenti avatar Jul 30 '25 18:07 awvalenti

Just confirmed, the issue happens after blocking the device. Don't need to restart the app.

awvalenti avatar Jul 30 '25 18:07 awvalenti

Thanks, I'll try to replicate and see what is going on.

infirit avatar Jul 30 '25 18:07 infirit

Confirmed. I do see the interface org.bluez.Network1 removed when blocking. But we don't generate a new menu when we block so the issues doesn't show up until blueman-manager regenerates the menu.

gdbus monitor -y -d org.bluez
Monitoring signals from all objects owned by org.bluez
The name org.bluez is owned by :1.4
/org/bluez/hci0/dev_64_A2_00_10_C7_CF: org.freedesktop.DBus.Properties.PropertiesChanged ('org.bluez.Device1', {'Blocked': <true>}, @as [])
/: org.freedesktop.DBus.ObjectManager.InterfacesRemoved (objectpath '/org/bluez/hci0/dev_64_A2_00_10_C7_CF', ['org.bluez.Network1', 'org.bluez.MediaControl1'])

infirit avatar Jul 31 '25 21:07 infirit

If you are able you can manually apply the patch from https://github.com/blueman-project/blueman/pull/2817/files

infirit avatar Jul 31 '25 21:07 infirit

I'm not sure I can. I may have to wait until Linux Mint adds it. Do you know how long it usually takes?

awvalenti avatar Aug 04 '25 14:08 awvalenti