Oh I should note one additional detail - in the "debug" log from vibe there's one interesting bit right before it crashes, namely it says "TCP close request false passiveClose" or something similar. I've not seen the passiveClose bit before during a close request and it does seem directly related to the crash (happens right before it and doesn't happen elsewhere). And a quick look at the "close" routine in vibe has it handling already "closed" connections at the top of the function, but not "passively" closed ones (i.e. remote closed)... not sure if it's in issue though given the rest of the function.