I've been using Cygwin for quite a while now. I now want to switch to fish from bash. Everyone is saying that you should use
chsh -s /usr/bin/fish
I randomly meet the same problem, and now I providing my solution for you.
1- Build passwd file manually (
$mkpasswd > /etc/passwd
2- Change default shell in passwd file
$vim /etc/passwd user:*:1976XX:1971XX:U-user\user,S-1-5-21-XXXX:/home/user:/bin/fish