Duplicate Article

Also known as: dupe article, duplicate message-id

An article a server rejects at posting time because an identical message-id already appears in its history file. Propagation depends on that check: without it, an article echoing between peers would circulate indefinitely. On the reading side, several indexer listings pointing at the same release are a separate matter, handled by the download client's duplicate-detection setting rather than by any server.

This is one of the few entries in an error glossary describing something working correctly. Duplicate suppression is a load-bearing part of how articles move between servers, and the reading side of Usenet is built so that it is never observed. A reader who has arrived at the phrase has almost certainly met a different problem that borrowed the word.

Why the check exists at all

Servers exchange articles with several peers at once, and those peers exchange with each other. Without a memory of what has already been seen, a single article would arrive from one peer, be offered onward, come back from another and circulate indefinitely, multiplying at every hop. The history file is that memory. It records message-ids for a retention period of its own, and an offer of an id already present is declined during the CHECK or IHAVE exchange before any body is transferred. The rejection is the mechanism functioning, and a feed showing large numbers of them is usually just a well-connected peer receiving the same articles from several directions at once.

Nothing on the reading side needs attention

A reading client never receives the same message-id twice from a server, because only one copy is stored. Duplicate rejections happen at the transit layer, between servers, and are not surfaced to accounts that only read. There is no setting on a reading account that affects them and no reason to want one. The single case in which a posting account meets the rejection directly is an article submitted twice, or resubmitted after an upload that appeared to fail but had in fact succeeded; the server declines the second copy and the outcome is correct, since the first is already in place and propagating.

The duplicate a reader actually meets

The practical version of the problem is two download jobs for the same release, arriving because two indexers listed the same posting or because an automation tool grabbed it twice. The duplicate-detection setting in a download client exists for this, and it matches on release name and size rather than on message-ids. The symptoms are distinctive: a second job finishing suspiciously fast, an unpack failing because the destination folder already holds the extracted output, or an automation tool reporting an import conflict. None of this involves server behavior, and the fix is in the client or in the automation tool's own grab history.

Terms it gets confused with

  • A repost is the same content posted again with new message-ids. Every article is genuinely new to the servers, so no duplicate check applies, and to a client it is simply a separate release.
  • A crosspost is one article listed in several groups. One copy is stored, referenced from each group, with the Xref header recording where. It is the opposite of duplication.
  • A dupe on an indexer means two listings pointing at the same or near-identical posting, which is an indexing artefact rather than a server condition.

Frequently asked questions

It is an article offered to a server that already holds the same message-id, which the server declines rather than storing a second copy. The check is what stops articles looping endlessly between peers that feed each other. It happens between servers during transit and is never visible to an account that only downloads.
That is a client-side matter rather than a server one. Two indexers commonly list the same posting, and download clients include a duplicate-detection setting comparing release names and sizes to suppress the second job. Automation tools keep their own grab history for the same purpose. The typical symptom is a second job failing at the unpack stage on an already-populated folder.

Browse all terms in Errors & Troubleshooting, or see the full Usenet glossary.

Put it into practice with the world's best usenet service