I think you'll need to call `last_error()` in the callback because many syscalls could have happened since `recv_cb` and this code running.