What does HRESULT 0xC00D106F (NS_E_WMX_ATTRIBUTE_ALREADY_EXISTS) mean?

 
Previous Next
NS_E_WMX_ATTRIBUTE_DOES_NOT_EXIST NS_E_WMX_ATTRIBUTE_UNRETRIEVABLE

NS_E_WMX_ATTRIBUTE_ALREADY_EXISTS

Understanding NS_E_WMX_ATTRIBUTE_ALREADY_EXISTS in a Windows Media playlist

NS_E_WMX_ATTRIBUTE_ALREADY_EXISTS (0xC00D106F) is returned when a caller attempted to add an attribute whose name is already present in the playlist metadata set.

Distinguish in-memory Playlist state, WPL or ASX parsing, nested-list expansion, Media-object resolution and execution of referenced items. Record what the Player had already completed because later retries often replace the original evidence. The specific rejected condition is a caller attempted to add an attribute whose name is already present in the playlist metadata set.

Playlist boundary

AllStat already supplies the standard user-facing description for it; this custom block instead isolates the additional technical boundary. Earlier success in file lookup, network connection, parser creation or graph construction does not prove that the later the operation is valid.

Case-specific checkpoint: the preexisting value, attribute enumeration, code path that creates the attribute and object identity. The controlled comparison for it is: on a new playlist, add the attribute once and update its value through the supported setter rather than adding it again.

Closest distinction: An existing attribute is different from an item collision such as NS_E_WMP_PLAYLIST_EXISTS.

Evidence from the list model

CaptureWhy it matters for it
Object or resourcethe preexisting value, attribute enumeration, code path that creates the attribute and object identity
State snapshotRecord the Player openState/playState or operation phase, object identity and exact timestamp when this result was returned.
First lower resultKeep the earliest Win32, Winsock, COM, parser, codec, DRM or device result that appears before this result.
Comparison recordUse one known-good case that follows the same API, protocol and component path while changing only the rejected precondition.

Minimal playlist experiment

  1. Start from the original call and log 0xC00D106F together with its object and operation phase.
  2. Collect the preexisting value, attribute enumeration, code path that creates the attribute and object identity before changing the machine.
  3. Use this single-variable test: on a new playlist, add the attribute once and update its value through the supported setter rather than adding it again.
  4. repeat on a fresh object if the original predates a configuration, device or resource change.
  5. validate the expected next operation, not just initial open or object creation.

What the result means

Retest outcomeInterpretation
Same this result on the same objectThe governing state or value is unchanged, or the caller is reusing an object created before the relevant change.
Fresh object succeedsLifetime, cached configuration or stale playlist/graph state contributed to this result.
A later HRESULT appearsThe rejected condition — a caller attempted to add an attribute whose name is already present in the playlist metadata set — was cleared for it; diagnose the new code at its own layer.
Only one item or endpoint fails for itThe evidence favors resource-specific data, rights, routing or device state rather than a global Player failure.

Actions that obscure the cause

  • deleting the whole playlist to change one metadata field.
  • Do not discard the first occurrence by repeatedly invoking Play, open, save or retry; later events can replace its original state.
  • do not publish credentials, private URLs, license material or complete protected-content headers; retain only redacted identifiers, lengths, hashes and protocol fields.

Technical references

Retain before-and-after evidence for it so object recreation or content replacement is not mistaken for random retry success.


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