fix(sqs): do not treat FIFO empty receives as drained under deferred ack - #116
Merged
Divyanshu Tiwari (divyanshu-tiwari) merged 2 commits intoSep 8, 2026
Merged
Conversation
…are outstanding Deferred ack leaves FIFO message groups blocked until deletes land, so the next ReceiveMessage can return nothing while the queue still holds work. exit_on_empty now waits out those receipts before stopping.
Divyanshu Tiwari (divyanshu-tiwari)
requested a review
from a team
as a code owner
September 8, 2026 07:36
Drop the duplicated outstanding-field note, keep the FIFO constraint on shouldExitOnEmpty, and remove old-vs-new framing from the join README.
Mahesh Kamble (ma-gk)
approved these changes
Sep 8, 2026
Divyanshu Tiwari (divyanshu-tiwari)
deleted the
fix/sqs-fifo-exit-on-empty
branch
September 8, 2026 08:33
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.
Summary
ReceiveMessagecan return nothing while the queue still holds work.exit_on_emptynow skips that empty poll on.fifoqueues while this task still holds outstanding receipts; after deletes, the next poll either returns the next batch or a true empty.joinon a FIFO source keeps polling instead of reporting success with leftovers; set a join flush limit as before.Test plan
max_messagesbodies,exit_on_empty: true, downstream that completes (not an unbounded join): run drains the queue instead of stopping after the first batchexit_on_emptystill stops on the first empty receive