The ghost-commit framing is exactly right. I've hit the same shape of bug in an agent job queue: a unique constraint stopped the duplicate row, but every caller still saw a conflict or an auth error, so retries kept firing anyway even though the write had already landed. Curious whether you're storing the idempotency key server-side with its own TTL, or deriving it purely from actor plus payload each time - the TTL version has bitten me when a slow worker retries after the window closes and gets treated as a brand new request instead of a replay.