[Fix] Next Slack question disappears when prompt delivery fails - #2447
Draft
roomote-roomote[bot] wants to merge 2 commits into
Draft
[Fix] Next Slack question disappears when prompt delivery fails#2447roomote-roomote[bot] wants to merge 2 commits into
roomote-roomote[bot] wants to merge 2 commits into
Conversation
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Slack multi-question prompts now recover when the next question cannot be posted after the answer state has already advanced. Retrying the prior answer redelivers the pending question without advancing state again, while stable message IDs keep ambiguous delivery retries idempotent.
The next prompt is posted before the answered prompt is retired. If delivery fails, the old prompt keeps its controls and remains the visible retry path; after delivery succeeds, updating that old prompt remains best-effort.
Why this change was made
The Redis transition completes before Slack delivery. If posting fails, the durable current question is hidden and the prior prompt must remain actionable so the exact saved answer can retry delivery.
The recovery path deliberately preserves the advanced state rather than rolling it back, because a transport failure can occur after Slack accepted the post.
Impact
Users receive explicit retry guidance when their answer was saved but the next prompt was not delivered, and the button needed to perform that retry remains available. An exact retry can safely recover delivery; stale or different answers remain rejected and cannot mutate hidden state.
The Slack package suite, repository lint, fast typecheck, knip, and pre-push checks pass. No database schema or external protocol changed, and no browser proof applies to this backend-only behavior.