Direnv keep using old cached version of shell

I am using shell.nix with direnv and npins.
I had the problem that i updated the npins but when i entered the directory direnv still uses the cached old version of the shell. To solve this i deleted .envrc and recreated it.
why is it like this?
what would have triggered a update of the shell?