safer version of bad block detection

previous commit attempted to save messages but would fail if you deleted the block. all of the orphan messages will still try to send to the dead go routine. all this version does is drop messages. those errors are then sent to the user. 

this solution is not ideal but much better than complete st failure.