Apparently it was my $pd parameter, that was a problem. After changing it to $pwd, everything worked.
I don't understand why my try catch did not capture anything going wrong.