Answering every unique key conflict with "already accepted" looks safe. It hides three different situations.
Two servers sit in front of one PostgreSQL 18 table with a unique request identifier. The table stores only that identifier, and either server can hit the conflict. A client times out and retries. The retry may carry a changed payload. The first attempt may already have triggered an external action before the timeout.
ON CONFLICT DO NOTHING keeps the second row out. That is all it does. It doesn't compare payloads and it says nothing about the external action. Cancelling the Go request context doesn't mean the remote work never happened either.
So the second server needs more than the identifier. It has to tell a matching retry from changed input under the same identifier, and both of those from work whose outcome nobody knows yet. I want the smallest durable record that gives it those three answers.