Skip to content

Use Lwt.reraise over Lwt.fail#594

Open
reynir wants to merge 2 commits intomainfrom
feature/lwt-reraise
Open

Use Lwt.reraise over Lwt.fail#594
reynir wants to merge 2 commits intomainfrom
feature/lwt-reraise

Conversation

@reynir
Copy link
Collaborator

@reynir reynir commented Jan 16, 2026

Lwt.reraise preserves backtraces while Lwt.fail doesn't.

Available since lwt.5.7.0. We already had that requirement in esy.json but not in dune-project / pool.opam - pool.opam.locked is at a much more recent version.
https://github.com/ocsigen/lwt/blob/4714cea1b73aaccf1ea2ea2a18db565070ca680c/CHANGES#L129

Lwt.reraise preserves backtraces
We already have that constraint in esy.json.
Logs.debug (fun m -> m "Successfully rolled back transaction"))
|> Pool.raise_caqti_error label
in
Lwt.fail error
Copy link
Collaborator Author

@reynir reynir Jan 16, 2026

Choose a reason for hiding this comment

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

I'm not 100% certain about this one. Specifically, I'm not sure what happens if the exception passed to rollback wasn't raised and if that could cause issues. However, the function is not exported in the interface and it is only called inside a Lwt.catch so it should be fine as it is now.

Updated: in the top level it seems to act like raise...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant