GSConnect / gnome-shell-extension-gsconnect

KDE Connect implementation for GNOME
GNU General Public License v2.0
3.15k stars 255 forks source link

Devices not showing up in the settings page. Stuck on "Searching for devices" #1756

Open Si-ris-B opened 6 months ago

Si-ris-B commented 6 months ago

Describe the bug

Devices are no longer displayed in the mobile settings page. It used to work flawlessly before but recently it only shows "searching for devices" without showing any devices. But I am still able to pair devices from the user menu, and transfer files, and utilize other features without any problems. However, I can't adjust settings for each device since the devices aren't shown in the settings page.

Steps to reproduce

  1. Go to GSConnect settings page
  2. Click on refresh devices
  3. See "Searching for devices..."

Expected behavior

Connected Devices list should appear

GSConnect version

50

Installed from

GitHub releases (zip file)

GNOME Shell version

42.9

Linux distribution/release

Ubuntu 22.04

Paired device(s)

No response

KDE Connect app version

No response

Plugin(s)

No response

Support log

Mar 12 2:53:00 gnome-shell[1434]: Can't update stage views actor <unnamed>[<MetaWindowGroup>:0x569d826e0310] is on because it needs an allocation.
Mar 12 2:53:00 gnome-shell[1434]: Can't update stage views actor <unnamed>[<MetaWindowActorX11>:0x569d84d8faf0] is on because it needs an allocation.
Mar 12 2:53:00 gnome-shell[1434]: Can't update stage views actor <unnamed>[<MetaSurfaceActorX11>:0x569d85918a50] is on because it needs an allocation.
Mar 12 2:53:23 dbus-daemon[1204]: [session uid=1000 pid=1204] Activating via systemd: service name='org.freedesktop.Tracker3.Miner.Extract' unit='tracker-extract-3.service' requested by ':1.74' (uid=1000 pid=1754 comm="/usr/libexec/tracker-miner-fs-3 " label="unconfined")
Mar 12 2:53:23 systemd[1187]: Starting Tracker metadata extractor...
Mar 12 2:53:23 dbus-daemon[1204]: [session uid=1000 pid=1204] Successfully activated service 'org.freedesktop.Tracker3.Miner.Extract'
Mar 12 2:53:23 systemd[1187]: Started Tracker metadata extractor.
Mar 12 2:53:26 gnome-shell[1434]: JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.DBusConnection.call: expected 10, got 11
Mar 12 2:53:26 dbus-daemon[1204]: [session uid=1000 pid=1204] Monitoring connection :1.145 closed.
Mar 12 2:53:26 gjs[7075]: JS ERROR: TypeError: malformed UTF-8 character sequence at offset 0
                           @/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences:115:21
Mar 12 2:53:26 gjs[7075]: JS ERROR: TypeError: malformed UTF-8 character sequence at offset 3
                           @/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences:115:21
Mar 12 2:53:26 gjs[7075]: JS ERROR: TypeError: malformed UTF-8 character sequence at offset 1
                           @/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences:115:21
Mar 12 2:53:26 gnome-shell[1434]: JS ERROR: TypeError: malformed UTF-8 character sequence at offset 0
Mar 12 2:53:26 gnome-shell[1434]: JS ERROR: TypeError: malformed UTF-8 character sequence at offset 0
Mar 12 2:53:26 gnome-shell[1434]: JS ERROR: TypeError: malformed UTF-8 character sequence at offset 0
Mar 12 2:53:26 gnome-shell[1434]: JS ERROR: TypeError: malformed UTF-8 character sequence at offset 0
Mar 12 2:53:26 gnome-shell[1434]: JS ERROR: TypeError: malformed UTF-8 character sequence at offset 0
Mar 12 2:53:26 gnome-shell[1434]: JS ERROR: TypeError: malformed UTF-8 character sequence at offset 0
Mar 12 2:53:34 dbus-daemon[1204]: [session uid=1000 pid=1204] Activating service name='org.gnome.Shell.Extensions.GSConnect' requested by ':1.32' (uid=1000 pid=1434 comm="/usr/bin/gnome-shell " label="unconfined")
Mar 12 2:53:34 dbus-daemon[1204]: [session uid=1000 pid=1204] Successfully activated service 'org.gnome.Shell.Extensions.GSConnect'
Mar 12 2:53:34 org.gnome.Shell.Extensions.GSConnect[7491]: [/service/components/contacts.js:load/this._cacheData</<:625]: Error opening file /home/username/.cache/gsconnect/c48abe67_3b48_4353_975a_c593ebc59050/contacts.json: No such file or directory
                                                            load/this._cacheData</<@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/contacts.js:625:47
                                                            @/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/daemon.js:727:17
Mar 12 2:53:34 org.gnome.Shell.Extensions.GSConnect[7491]: [/service/components/contacts.js:load/this._cacheData</<:625]: Error opening file /home/username/.cache/gsconnect/f4bb0ed2_6287_4567_bacf_c0e0d3335a93/contacts.json: No such file or directory
                                                            load/this._cacheData</<@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/contacts.js:625:47
                                                            @/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/daemon.js:727:17
Mar 12 2:53:34 dbus-daemon[1204]: [session uid=1000 pid=1204] Connection :1.156 (uid=1000 pid=7491 comm="gjs /home/username/.local/share/gnome-shell/extensions" label="unconfined") became a monitor.
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:34 gnome-shell[1434]: g_signal_handler_disconnect: assertion 'handler_id > 0' failed
Mar 12 2:53:35 gjs[7075]: JS ERROR: TypeError: malformed UTF-8 character sequence at offset 0
                           _queryApplications@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/device.js:869:25
                           _populateApplications@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/device.js:833:35
                           _notificationSettings@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/device.js:806:14
                           _init@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/device.js:327:14
                           Panel@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/device.js:296:4
                           _onDeviceAdded@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/service.js:591:31
                           _onInterfacesAdded@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/utils/remote.js:317:18
                           async*_addDevices@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/utils/remote.js:373:24
                           async*_onNameOwnerChanged@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/utils/remote.js:398:28
                           @/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences:115:21
Mar 12 2:53:35 dbus-daemon[560]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.140' (uid=1000 pid=7075 comm="gjs /home/username/.local/share/gnome-shell/extensions" label="unconfined")
Mar 12 2:53:35 systemd[1]: Starting Hostname Service...
Mar 12 2:53:35 dbus-daemon[560]: [system] Successfully activated service 'org.freedesktop.hostname1'
Mar 12 2:53:35 systemd[1]: Started Hostname Service.
Mar 12 2:53:35 gjs[7075]: JS ERROR: TypeError: malformed UTF-8 character sequence at offset 0
                           _queryApplications@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/device.js:869:25
                           _populateApplications@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/device.js:833:35
                           _notificationSettings@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/device.js:806:14
                           _init@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/device.js:327:14
                           Panel@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/device.js:296:4
                           _onDeviceAdded@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/preferences/service.js:591:31
                           _onInterfacesAdded@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/utils/remote.js:317:18
                           async*_addDevices@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/utils/remote.js:373:24
                           async*_onNameOwnerChanged@/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/utils/remote.js:398:28
                           @/home/username/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences:115:21
Mar 12 2:53:35 org.gnome.Shell.Extensions.GSConnect[7491]: [/service/backends/lan.js:broadcast:413]: "Broadcasting to LAN"

Screenshots

26a4539e-858b-4fbd-bb22-bf1f033db5de

Notes

I have attempted to resolve this issue by completely uninstalling GSConnect with cache and resetting settings. But the problem still persists.

Milliw commented 6 months ago

I just reinstalled my OS (Nobara 39) and since then I can't add/find devices, too. Clean install. My both phones can find each other though.

NyllRE commented 5 months ago

@Milliw I also use Nobara 39 and it doesn't work, I believe it's an issue with gnome version, they should update something

Milliw commented 5 months ago

@NyllRE But it did work on my previous installation which was also Nobare 39. The only difference is, that I initially started with Nobara 38 and upgraded at some point.

Since it seems we will not get a solution here I will ask at the Nobara Discord but my hopes are not that high... This sxxx... :-/

kernelb00t commented 4 months ago

Hey, do your PC have a weird hostname, or some that contains non-ASCII characters? Or a phone having KDE Connect and having emojis in the phone name?

kernelb00t commented 4 months ago

Seems that this is https://github.com/GSConnect/gnome-shell-extension-gsconnect/blob/44eda98120704077c43a10c7f3c8543072bd964d/src/preferences/device.js#L869C25 that's causing the error

kernelb00t commented 4 months ago

https://docs.gtk.org/gio/type_func.AppInfo.get_all.html The function get_all() returns every apps (defined by a .desktop file at least) installed on the system.

Execute this in Looking Glass (alt + F2; lg):

let applications = {};
Gio.AppInfo.get_all().forEach(appInfo => {
    const encodedName = encodeURIComponent(appInfo.get_name());
    const encodedId = encodeURIComponent(appInfo.get_id());

    const decodedName = decodeURIComponent(encodedName);
    const decodedId = decodeURIComponent(encodedId);

    applications[decodedName] = { id: decodedId };
});printerr(JSON.stringify(applications));

Press Esc, then go to the terminal:

journalctl -b0 --lines=500 --no-pager

Adjust the number of lines if you have a lot of errors. Scroll to the big chunk of JSON text, copy it, check if there's no personal infos, and paste it to us in code blocks:

` ` ` (no spaces between `)
<your code>
` ` ` (no spaces between `)

If there's apps with not correct app id or name, it should error just after executing the GJS code.

Si-ris-B commented 3 months ago

@kernelb00t There is no JSON text in the terminal output. It returns <exception TypeError: malformed UTF-8 character sequence at offset 0> after executing that code in Looking glass. In the terminal, it shows

gnome-shell[1538]: Can't update stage views actor <LookingGlassDialog>[<Gjs_ui_lookingGlass_LookingGlass>:0x60adc734adb0] is on because it needs an allocation.
gnome-shell[1538]: Can't update stage views actor <unnamed>[<Gjs_ui_lookingGlass_Notebook>:0x60adc37e1e50] is on because it needs an allocation.
gnome-shell[1538]: Can't update stage views actor <unnamed>[<StScrollView>:0x60adc8ea4590] is on because it needs an allocation.
gnome-shell[1538]: Can't update stage views actor <EvalBox>[<StBoxLayout>:0x60adc3924a50] is on because it needs an allocation.
NyllRE commented 3 months ago

I have fixed this issue by allowing 1714-1764 port range for udp and tcp, here is a small tutorial for gnome:

install this or any firewall manager for gnome, go to the public settings, in the port or port range type 1714-1764 and add the protocol udp, then add another one for tcp. you can see a reference in the image below:

An image of the firewall setup for gsconnect firewall settings

:warning: WARNING :warning: : do NOT connect the pc to itself, for some reason it can recognize it's own service and connecting to itself will result to an infinite loop of messages sent to each other until it crashes. this issue should be fixed

Trijal08 commented 1 month ago

I have fixed this issue by allowing 1714-1764 port range for udp and tcp, here is a small tutorial for gnome:

install this or any firewall manager for gnome, go to the public settings, in the port or port range type 1714-1764 and add the protocol udp, then add another one for tcp. you can see a reference in the image below:

An image of the firewall setup for gsconnect firewall settings

⚠️ WARNING ⚠️ : do NOT connect the pc to itself, for some reason it can recognize it's own service and connecting to itself will result to an infinite loop of messages sent to each other until it crashes. this issue should be fixed

OMG! THANK YOU SO MUCH MAN, THAT FIXED IT!

NyllRE commented 1 month ago

@Trijal08 no worries.

the developers should implement a fix for that like a checker that checks if firewall settings are normal when the service initially starts

Trijal08 commented 1 month ago

@Trijal08 no worries.

the developers should implement a fix for that like a checker that checks if firewall settings are normal when the service initially starts

Agreed! 💯