Services.offlineimap and incorrect timer derivation

I’m using nixos-unstable and have enabled the user unit using services.offlineimap.enable (I’ve read through the nixpkg and also tried …install = true, but it’s just doing an or on the two values).

This is NOT a complex derivation so I’m confused as to the behavior I’m seeing.

While systemd can see the .service file and works correctly, the .timer is being seen by systemd, but the path it picks up is incorrect. It’s referring to a derivation path that does not exist.

I can find the correct derivation path in the nix store and looking through where I assume systemd should find the units (/run/current-system/etc/systemd/) I see the correct unit listed.

I attempted to do a daemon-reload, but the old unit is still being picked up. Concurrently with this, I see an old unit that I had enabled – but have since disabled – is ALSO showing up in the systemd unit files list. Said unit (psd.service) is similarly marked as ‘bad’ because the derivation doesn’t exist.

This bad state survives reboots and system garbage collection. I don’t see psd.service unit in /run/current-system/etc/systemd either.

It seems like generations are leaking or are not getting cleaned up properly, but I’m stuck in my debugging journey at this point… Thoughts?