Avoid attr-err when `._ipc_msg==None`

Seems this can happen in particular when we raise a `MessageTypeError`
on the sender side of a `Context`, since there isn't any msg relayed
from the other side (though i'm wondering if MTE should derive from RAE
then considering this case?).

Means `RemoteActorError.boxed_type = None` in such cases instead of
raising an attr-error for the `None.boxed_type_str`.
ext_type_plds
Tyler Goodlet 2025-03-10 11:17:46 -04:00
parent 92e1a2313d
commit 58a818472c
1 changed files with 8 additions and 2 deletions

View File

@ -432,9 +432,13 @@ class RemoteActorError(Exception):
Error type boxed by last actor IPC hop. Error type boxed by last actor IPC hop.
''' '''
if self._boxed_type is None: if (
self._boxed_type is None
and
(ipc_msg := self._ipc_msg)
):
self._boxed_type = get_err_type( self._boxed_type = get_err_type(
self._ipc_msg.boxed_type_str ipc_msg.boxed_type_str
) )
return self._boxed_type return self._boxed_type
@ -1143,6 +1147,8 @@ def unpack_error(
which is the responsibilitiy of the caller. which is the responsibilitiy of the caller.
''' '''
# XXX, apparently we pass all sorts of msgs here?
# kinda odd but seems like maybe they shouldn't be?
if not isinstance(msg, Error): if not isinstance(msg, Error):
return None return None