fix(instagram): fail cleanly when a post has no media - #145
Closed
murtaja1 wants to merge 1 commit into
Closed
Conversation
A media-less Instagram publish crashed with a raw IndexError (or an empty carousel stuck in the container wait loop) and burned the retry schedule. Raise a non-retryable PublishError before any API call instead.
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.
A media-less Instagram publish currently crashes with a raw
IndexError(media_urls[0]) — and a media-less CAROUSEL is worse: it creates an empty container and spins in_wait_for_containeruntil the processing timeout. Both burn the retry schedule on an input no retry can fix.Hit in production twice: a text-only post routed to Instagram ('list index out of range' in the publish log ×4), and again when a post's attachment was removed while a retry was pending.
Fix: raise a non-retryable
PublishError('Instagram requires at least one image or video — attach media to this post.') before any API call.Tested: three new tests (IMAGE/REEL/CAROUSEL) assert the clean error and that no API request is made; full
tests/providers/test_instagram.pypasses. Side effect: the carousel test case dropped from a 2-minute wait-loop to instant.