Gnome Online Accounts Offline

Hello I’m new to NixOS and just installed it today, I have everything setup as I want except I’m running into this one problem with Gnome Online accounts. When I open “Online Accounts” I get the message “Offline- unable to connect accounts”

Here’s the screenshot.

I followed the installation instructions here:
https://nixos.wiki/wiki/GNOME

So I enabled the following in my configuration.

services.xserver = {
  enable = true;
  displayManager.gdm.enable = true;
  desktopManager.gnome.enable = true;
}

I tried the solutions mentioned here but that didn’t make a difference.

I’m running the following version.

PRETTY_NAME="NixOS 24.05 (Uakari)"
VERSION="24.05 (Uakari)"
VERSION_CODENAME=uakari
VERSION_ID="24.05"

I have a bridged connection setup by using this in my configuration.
networking.bridges."br0".interfaces = [ "eno1" ];


I don’t see it listed under my network configuration but I have a working network configuration and when I use “ip a” see my br0 listed".

Am I missing something? Is there anything else I can provide to help solve this?

I have verified that the problem is my bridge interface, when I enable my wifi Gnome Online Accounts works. I"ll just to find a work around for it.

I used the following in my config to setup my bridge interface.

networking.useDHCP = false;
networking.bridges.“br0”.interfaces = [ “eno1” ];
networking.interfaces.“br0”.ipv4.addresses = [{
address = “192.168.1.100”;
prefixLength = 24;
}];
networking.defaultGateway = “192.168.1.1”;
networking.nameservers = [ “192.168.1.1” ];
networking.search = [ “lan.example.net” ];

Is that the correct way to setup a bridge interface? I’m thinking it might not be since in the under Gnome Network settings the bridge interface doesn’t appear, so I’m thinking it is the reason why Gnome Online Accounts think it’s offline when only the bridge interface is active when I turn of my wireless interface?

I seemed to have found a solution. I have changed around my network config as mentioned in this topic.

  networking.useDHCP = false;
  networking.bridges."br0".interfaces = [ "eno1" ];
  networking.interfaces."br0".ipv4.addresses = [{
    address = "192.168.1.100";
    prefixLength = 24;
  }];
  networking.defaultGateway = "192.168.1.1";
  networking.nameservers = [ "192.168.1.1" ];
  networking.search = [ "lan.example.net" ];

To this:

  networking.useDHCP = false;
  networking.bridges = {
    "br0" = {
      interfaces = [ "eno1" ];
    };
  };
  networking.interfaces.br0.ipv4.addresses = [ {
    address = "192.168.1.100";
    prefixLength = 24;
  } ];
  networking.defaultGateway = "192.168.1.100";
  networking.nameservers = ["192.168.1.100"];
  networking.search = [ "lan.example.net" ];

And now my Wired connection says it’s connected in the Gnome Network GUI even though I’m using my bridge interface and Gnome Online accounts also sees that it’s connected. Not quite sure what the difference is but it’s solved. I would still appreciate if someone comes along and explains to me why my first bridge configuration was wrong and the second one is correct.

After a few hours I realized my new bridge configuration was wrong because both my network interface and slave bridge interface were getting an ip. So will continue to look for a solution for this.

I decided I could live without a bridge interface for this use case since it’s my desktop. I then switched to a ethernet network interface with a static ip and then the problem appeared as well. I then setup dhcp for my ethernet network interface and then the problem was resolved. I then tried setting up dhcp for a bridge interface but I couldn’t get that working. I will put more time into it later, but seems I will have to put a bit more time in figuring how how static network configurations are done correctly as well as figuring out how to get a bridge interface working with dhcp. Closing it since I find that good enough to pickup for another day.

for anyone stumbling over this, what does work (apart from having NetworkManager manage all your connections) is to create a veth pair with systemd and assign one of the pair’s devices to be managed by NetworkManager and the other to the bridge interface. NetworkManager will then run a dhcp client on that veth device by default and will consider the machine to be online once a lease is acquired. In other words, you need one device managed by NetworkManager which allows NetworkManager to understand that the machine is online.