Transmission service failing to read settings

I have been attempting to migrate my transmission install to nixos and have been running into some issues.

With my current configuration I am installing transmission_4 and using the settings option specified by the transmission service to define the settings.
These settings get correctly placed in the location specified in services.transmission.home in the further location inside that dir .config/transmission-daemon/settings.json, however when the systemd service runs it does not correctly load these settings and instead loads the default settings as shown when I run transmission-daemon -d to dump the settings. This is despite the systemd service showing transmission-daemon being correctly run with the -g flag with the path to the correct settings.json

I have tried swapping it out with transmission_3 but did not get successful results.
I have also tried changing the umask to 68, 7 and 77 (the umask says it needs to be in decimal in the tranmsission.nix docs/comments) as I suspected it could be a permissions problem but that did not fix.

I have included this in my nix config git link here:

	users.users.transmission = {
		isSystemUser = true;
		description = lib.mkDefault "Transmission service account";
		group = "labmembers";
	};

# .........
	services.transmission = {
		enable = true;
		user = "transmission";
		group = "labmembers";
		home = "/opt/transmission/home";
		openFirewall = true;
		openPeerPorts = true;
		openRPCPort = true;
		downloadDirPermissions = "770";
		package = pkgs-unstable.transmission_4;
		settings = {
			alt-speed-down = 500;
			alt-speed-enabled = false;
			alt-speed-time-begin = 540;
			alt-speed-time-day = 127;
			alt-speed-time-enabled = false;
			alt-speed-time-end = 1020;
			alt-speed-up = 500;
			blocklist-enabled = false;
			cache-size-mb = 4;
			compact-view = false;
			dht-enabled = true;
			umask = 68;
			download-dir = "/mnt/amadeus/fg8/Pending/Unsorted";
			download-queue-enabled = true;
			download-queue-size = 5;
			encryption = 1;
			idle-seeding-limit = 30;
			idle-seeding-limit-enabled = false;
			incomplete-dir = "/mnt/amadeus/fg8/Pending/Unsorted/Incomplete";
			incomplete-dir-enabled = true;
			rpc-authentication-required = false;
			rpc-bind-address = "127.0.0.1";
			rpc-host-whitelist-enabled = false;
			rpc-whitelist-enabled = false;
		};
	};

If anyone knows what is wrong here or if there is something I’ve missed I would be grateful

Try removing the isSystemUser line. I’ve noticed some services don’t seem to like that option, but I haven’t dug in to why. Likely some of the systemd service hardening options.

The transmission module will already set up a user, there’s no need for you to create one, especially if it’s named transmission: that will cause some conflict.

I have updated my config to remove the definition of the transmission account now but I am still having the issue of the settings being ignored

Current git ver if useful

I checked the logs with journalctl but it is not telling me anything failed.

I found the issue.

transmission-daemon -d seems to just lie and not show the correct information I guess.
I have the settings file being created properly now and transmission is reading it and nix is setting up the service correctly.
What led me to believe it wasn’t was my attempts to get transmission accessible outside localhost so I kept changing values and not seeing them reflected in transmission-daemon -d.
The setting I needed to change was rpc-bind-address which will limit traffic to localhost only if set to 127.0.0.1 when relooking at the transmission.nix service file in nixpkgs I saw a note that it needs to be 0.0.0.0 to allow traffic from all interfaces. i did that and now it works.