Implementing Compensating Actions with Scoped Release in Effect Pattern

I'm trying to implement the pattern in https://effect.website/docs/guides/resource-management/patterns/sequence-of-operations-with-compensating-actions-on-failure, but saw unexpected behaviour on the release side when rolling back as the HTTP request being made there was cancelled. I had to place the release side in its own scope:
Effect.acquireRelease(
  Slack.chatPostMessage({...}),
  (id, exit) => Exit.matchEffect(exit, {
    onFailure: () => Slack.chatDelete(id).pipe(Effect.catchAll(() => Effect.logError('Unable to delete Slack message'))),
    onSuccess: () => Effect.unit,
  }).pipe(Effect.scoped),
)

Both Slack.chatPostMessage and Slack.chatDelete don't close the scope created by making an HTTP request (the former's implementation/type is https://github.com/PREreview/coar-notify/blob/91eeec411cc71160c638785ecef07d4747d30975/src/Slack.ts#L98-L131). I'm thinking that I should be close those scopes which would have avoided this issue, but shouldn't the release be run in its own scope anyway?
Was this page helpful?