Login shell not changing

A long time ago I changed from z̶s̶h̶ ̶t̶o̶ ̶f̶i̶s̶h̶ fish to zsh. On one computer this worked. On the other (shared import in configuration.nix file), the shell did not change, and yet the value seems correctly set:

tyler@sol ~> nix repl
Welcome to Nix version 2.3.1. Type :? for help.

nix-repl> :l <nixos>               
Added 11057 variables.

nix-repl> :l <nixpkgs/nixos>       
Added 6 variables.

nix-repl> config.users.users.tyler.shell
«derivation /nix/store/mjsi2g0lgxxizd71rni924xq7rwn0zhm-zsh-5.7.1.drv»

Fish is my default shell when I open Konsole. Do I need to manually chsh to zsh? (seems like I shouldn’t have to…)

Naturally I’ve tried sudo nixos-rebuild boot && reboot

You say the value seems correctly set, yet the nix repl log you just pasted shows your configured shell as zsh.

Eek typo in first sentence should have said “A long time ago I changed from fish to zsh”. I’ve noticed that when I ssh in, I get a zsh shell as expected, but in konsole I get a fish shell. I’ll try deleting ~/.cache when back on that computer

Unverified guess: You’ve got users.mutableUsers = true, which means that existing users are not modified. So you’d probably have to use chsh.

Check your Konsole configuration, perhaps you have configured it to not use the users shell but a different one?