fix: remote exception deserialization#1067
Conversation
c4b4781 to
1af584d
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1af584d053
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
1af584d to
6003b94
Compare
|
@efiop since we import a type introduced in latest version of isolate, we also need to update isolate version bounds too? do you prefer having it in the same PR or another one |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6003b94a66
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
6003b94 to
e13be51
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e13be51f58
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
fix CLI output for remote exceptions whose classes are not importable locally.
Problem
When isolate cannot deserialize a remote exception, it raises
ExceptionDeserializationError. That error preservesoriginal_traceback.The traceback object has the remote frames, but not the final exception line:
That line only exists in SerializedObject.stringized_traceback.
sdk.pyis the last place where both values are available at the same time:ExceptionDeserializationError.original_traceback, raised by isolateSerializedObject.stringized_traceback, still available on the proto being convertedAfter
from_grpc(message.return_value)raises, the proto is no longer available to the API or CLI layers. If the SDK lets isolate’s error pass through unchanged, the CLI can still render the remote frames,but it cannot recover the remote exception type/message. It would have to label the traceback as generic
Exception.So the SDK wraps only this error case and carries
stringized_tracebackforward in the exception chain.