I had the following code in my ~/.config/fish/config.fish:
type fortune > /dev/nullBasically, this code says, "If fortune exists, run it. Otherwise, don't complain." I figured out through a process of elimination that was the culprit. I replaced it with:
if status --is-interactiveThis code will result in an error if fortune doesn't exist, but it won't die. It turns out to be fine for me since I only run fish on my laptop, and I usually install fortune at the same time I install fish.