What does HRESULT 0xC00D106D (NS_E_URLLIST_INVALIDFORMAT) mean?

 
Previous Next
NS_E_ASX_NOTHING_TO_WRITE NS_E_WMX_ATTRIBUTE_DOES_NOT_EXIST

NS_E_URLLIST_INVALIDFORMAT

Understanding NS_E_URLLIST_INVALIDFORMAT in a Windows Media playlist

NS_E_URLLIST_INVALIDFORMAT (0xC00D106D) is returned when a plain URL-list playlist was recognized as that format but one or more records violate its line-oriented syntax.

Distinguish in-memory Playlist state, WPL or ASX parsing, nested-list expansion, Media-object resolution and execution of referenced items. This result identifies a narrower stage than the dialog text exposes, so preserve its operation before trying a workaround. In this case the rejected checkpoint is a plain URL-list playlist was recognized as that format but one or more records violate its line-oriented syntax.

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: line endings, comments, whitespace, URL encoding, embedded NUL bytes and the first rejected line. The controlled comparison for it is: create a one-line list containing a fully qualified HTTP URL and compare it with the original byte-for-byte.

Closest distinction: NS_E_ASX_INVALIDFORMAT belongs to XML-like ASX parsing and should not be treated as the same parser.

Evidence from the list model

CaptureWhy it matters for it
Object or resourceline endings, comments, whitespace, URL encoding, embedded NUL bytes and the first rejected line
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. Freeze the current object state and collect line endings, comments, whitespace, URL encoding, embedded NUL bytes and the first rejected line.
  2. Reproduce this result once without automatic retries or fallback applications.
  3. Change only one precondition: create a one-line list containing a fully qualified HTTP URL and compare it with the original byte-for-byte.
  4. compare the first nested status and next Player event with the failed run.
  5. After testing it, restore the original configuration if the change was diagnostic only.

What the result means

Retest outcomeInterpretation
Same it 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 it.
A later HRESULT appearsThe rejected condition — a plain URL-list playlist was recognized as that format but one or more records violate its line-oriented syntax — 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

  • wrapping the list in ASX tags without first identifying the expected file type.
  • 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

After it, a different downstream HRESULT is progress and should be recorded as a separate condition.


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