Start here. This is the direct spoken answer to practice first.
Why this question matters
Poison messages reveal the unhappy path of background work. This scenario checks whether you can diagnose message failures without losing data or replaying harmful work.
I would inspect a sample of failed messages, their failure reason, dequeue or delivery count, age, payload shape, and the worker exception. Then I would classify the cause: bad payload, missing dependency, code bug, permission problem, timeout, duplicate side effect, or a transient outage that has now recovered. I would not automatically replay everything. First I would confirm the handler is idempotent or that replay cannot duplicate harmful side effects.