we generally have blocks immediately puke an error and then `continue`, dealing with whatever message shows up next. A bug in the block tends then to manifest as lots of errors which is easy to spot; malformed data shows up as occasional errors which are also easy to spot but doesn't bring the whole thing down. 

We try not to let blocks stop responding, as any status requests or rule updates etc then get blocked and hit their timeouts, causing everything to slow down a little and get clunky.