better errors

These error messages don't get surfaced
to the user anyway. All they see is a
500, but at least they can look in
the local-npm logs to see what's up.