I noticed these conditions for process.open():

1. A possible TimeoutError when the response is nil in send_request (which is used when open() is called)
2. A possible RequestError when the response result != 0 in send_request (which is used when open() is called)
3. open() may return nil if the get_tlv_value handle is nil.

Now, I also notice Metasploit is full of code not catching nil return value + exceptions.... I'm not sure what to do here.  Let me ask egypt.