Improve error handling

In several places, do a better job of catching errors and reporting them to the callbacks.  The biggest benefit is that continuous HTTP replication should silently fail less often, although we should do a full sweep at some point to make sure there aren't other places they need to be caught.