What does HRESULT 0x8004165C (QPLIST_E_DUPLICATE) mean?

 
Previous Next
QPLIST_E_CANT_SET_PROPERTY QPLIST_E_VECTORBYREF_USED_ALONE

QPLIST_E_DUPLICATE

The property list defines the same name more than once

QPLIST_E_DUPLICATE is HRESULT 0x8004165C. Windows documents it as “Duplicate property name.”

Contract and failing stage

This result belongs to legacy Windows property-list parsing and is returned while inserting a parsed property name after an earlier entry already claimed the normalized identity. The exact condition is: merged fragments, case folding, repeated includes or mutable generator state create equivalent or conflicting definitions.

This value belongs to the legacy property-list parser used to describe indexed properties and their types. Diagnose the external list as structured configuration: preserve line, column, token, type grammar and the property-list version instead of treating the file as arbitrary text. The exact public message comes from the legacy SDK contract; current property-system documentation does not replace the property-list grammar that rejected this file.

Conditions that produce it

Rejection of the property list does not yet distinguish file access, tokenization, type composition, GUID syntax or duplicate-definition failure.

Evidence to preserve

  • Record normalized name before releasing the relevant objects.
  • Associate GUID and property ID with the exact UTC timestamp and correlation identifier.
  • Compare failing and known-good values for type for each entry under the same provider or handler version.
  • Record the source and normalization path of source fragment, not only its display form.

Hash the complete file if it is sensitive while retaining encoding, line, column, raw token class and the surrounding property declaration.

Diagnostic sequence

  1. Capture all duplicate positions and normalized name at the call boundary that returns this result.
  2. Confirm the operation reached inserting a parsed property name after an earlier entry already claimed the normalized identity with the intended GUID and property ID.
  3. collect every occurrence and compare GUID, property ID and type before deleting anything.

Begin with a one-property list accepted by the same parser, then restore the failing declaration token by token while preserving encoding and line endings.

Recovery and retry

Keep one authoritative equivalent entry or fail deployment when the duplicate maps to different properties. Delay cannot repair a deterministic file, token or type-grammar defect; retry only after the property list or its readable source changes.

What the code does not prove

It does not prove that every property definition is unusable or that reindexing is required; it identifies a property-list read or grammar boundary.

Related HRESULT values

QPLIST_S_DUPLICATE is the separate informational exact-duplicate result.

Developer and administrator guidance

Practical scenario

Two modules define DocTitle, but one uses a custom GUID. The merge tool rejects the conflicting duplicate instead of relying on file order.

Official Microsoft references


Looking for a different code? Search another status or error code.