Skip to content

Move exception-to-FailureStatus conversion from speedy to engine - #23323

Open
remyhaemmerle-da wants to merge 3 commits into
mainfrom
remy/failure-status
Open

Move exception-to-FailureStatus conversion from speedy to engine#23323
remyhaemmerle-da wants to merge 3 commits into
mainfrom
remy/failure-status

Conversation

@remyhaemmerle-da

@remyhaemmerle-da remyhaemmerle-da commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

The speedy interpreter now always emits UnhandledException errors; the
engine's computeFailureStatus is responsible for calling the exception
message function and wrapping the result in FailureStatus.

companion PR: https://github.com/DACH-NY/canton/pull/35042

fix #23293

@paulbrauner-da paulbrauner-da left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM for the Runner part. For the safe proto part you may want to have someone from canton who understand how these safe proto fields are supposed to be handled to have a look.

I think it'd be a good thing for @samuel-williams-da to also have a look at lines 124 to 152 in the runner, in particular the recoverWith part, since I'm not very familiar with this particular free monad implementation.

@remyhaemmerle-da

Copy link
Copy Markdown
Collaborator Author

The safe proto part was part of fixing the SDK. It is gone as @samuel-williams-da push those fix to previous canton update.

@remyhaemmerle-da remyhaemmerle-da added the no-release-notes Apply this label to skip the UNRELEASED.md modification check label Aug 28, 2026

@samuel-williams-da samuel-williams-da left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, from my understanding of the changes, this does not change any behaviour :)

The speedy interpreter now always emits UnhandledException errors; the
engine's computeFailureStatus is responsible for calling the exception
message function and wrapping the result in FailureStatus.
@remyhaemmerle-da
remyhaemmerle-da requested a review from a team as a code owner September 1, 2026 11:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-release-notes Apply this label to skip the UNRELEASED.md modification check Standard-Change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TxConductor: Handle exceptions

3 participants