Couldn't reproduce the reported URL failing -- downloads fine from
here (200, valid 2.5MB PNG, verified through the actual running app
too) -- but found the error handling was swallowing the real
exception either way: network failure and "not a valid image" both
landed on the same generic message, and nothing was logged, so there
was no way to tell which one it actually was, from the Pi or from
here.
Now: timeouts, connection/HTTP errors, and decode failures each get
their own specific error message, and failures get logged via the
standard logger (visible in journalctl -u paperwall.service). Also
bumped the download timeout 15s -> 30s -- it's a one-time save-time
download now, not a recurring poll, so there's no real cost to being
more patient with a slow host or a large image.
Verified against the real app: the exact reported URL, a non-image
URL, and an unresolvable domain each now produce distinct, logged
error messages instead of one generic one.