What does HRESULT 0xC00D158F (NS_E_ARCHIVE_GAP_DETECTED) mean?

 
Previous Next
NS_E_ARCHIVE_ABORT_DUE_TO_BCAST NS_E_AUTHORIZATION_FILE_NOT_FOUND

NS_E_ARCHIVE_GAP_DETECTED

NS_E_ARCHIVE_GAP_DETECTED: owning object, evidence and recovery

What the server is validating

NS_E_ARCHIVE_GAP_DETECTED (0xC00D158F) marks the archive writer observed a discontinuity in the incoming source. For NS_E_ARCHIVE_GAP_DETECTED, although the visible symptom may be interrupted playback, this HRESULT is raised at an administrative or distribution checkpoint.

For NS_E_ARCHIVE_GAP_DETECTED, administration and system plug-ins validate concrete properties before they bind sockets, emit logs, download remote data or archive a stream. When NS_E_ARCHIVE_GAP_DETECTED is returned, a failure at this layer should be diagnosed from the plug-in configuration and its first lower-level result. In a NS_E_ARCHIVE_GAP_DETECTED trace, export the exact plug-in property values and record the service identity. While diagnosing NS_E_ARCHIVE_GAP_DETECTED, mMC display text alone can hide binding scope, normalized URLs or inherited defaults. For NS_E_ARCHIVE_GAP_DETECTED, the decisive question is whether the live object and values match that boundary; the base AllStat description alone does not reveal the object generation, selected plug-in or lower-level failure.

Interpret the retest

Retest observationInterpretation
The same call still returns NS_E_ARCHIVE_GAP_DETECTEDFor NS_E_ARCHIVE_GAP_DETECTED, the rejected precondition has not changed, or the caller is still using an old object/configuration generation.
The operation advances and a later code appearsThe NS_E_ARCHIVE_GAP_DETECTED boundary was cleared. After NS_E_ARCHIVE_GAP_DETECTED, diagnose the new code at its own source, parser, sink, network or client stage.
A new object succeeds while the retained object failsFor NS_E_ARCHIVE_GAP_DETECTED, object lifetime or stale context is part of the incident; update lifecycle handling rather than applying a machine-wide repair.
Only one publishing point, playlist, cache key or plug-in failsFor NS_E_ARCHIVE_GAP_DETECTED, the evidence favors object-specific configuration or content over a server-wide outage.

Code-specific failure anatomy

In a representative NS_E_ARCHIVE_GAP_DETECTED incident, the server reaches the archive writer observed a discontinuity in the incoming source and rejects the operation before the caller can safely assume the next stage occurred. The incident record should therefore join archive timestamps, packet/sample sequence, source reconnect events, encoder status and gap duration with the object generation and the exact administrative or protocol request.

A useful negative control is stabilize the source or deliberately segment archives around discontinuities, then verify continuous timestamps. If that change advances the same NS_E_ARCHIVE_GAP_DETECTED call, the result supports this boundary. If NS_E_ARCHIVE_GAP_DETECTED remains, return to the first lower-level event instead of broadening the repair.

The tempting but misleading response is repairing only the output filename while the source continues dropping/restarting. That action does not test the distinction that matters here: abort due to broadcast is a mode incompatibility; gap detected is continuity loss during an active archive. For NS_E_ARCHIVE_GAP_DETECTED, this distinction is also why monitoring should retain the symbolic name instead of storing only a generic COM failure.

Evidence that separates this code

EvidenceWhy it matters for NS_E_ARCHIVE_GAP_DETECTED
Decisive statearchive timestamps, packet/sample sequence, source reconnect events, encoder status and gap duration.
Owning objectRecord the server, publishing point, playlist, namespace node, plug-in or cache item that returned NS_E_ARCHIVE_GAP_DETECTED, including its creation or restart time.
First lower-level resultPreserve the earliest Win32, socket, COM, parser or plug-in event before the HRESULT; later wrappers can map several causes to NS_E_ARCHIVE_GAP_DETECTED.
Controlled comparisonUse a known-good object of the same type and vary only the precondition described as “the archive writer observed a discontinuity in the incoming source”.
Security-sensitive dataFor NS_E_ARCHIVE_GAP_DETECTED, log identifiers, lengths, hashes and redacted URLs where possible; do not publish passwords, authorization files or unrestricted client data.

Smallest useful experiment

  1. Capture 0xC00D158F, NS_E_ARCHIVE_GAP_DETECTED, the exact API/administrative action and the first failure timestamp.
  2. Preserve archive timestamps, packet/sample sequence, source reconnect events, encoder status and gap duration.
  3. For NS_E_ARCHIVE_GAP_DETECTED, confirm that the object still belongs to the current WMServer, publishing-point or presentation generation.
  4. Perform one isolated experiment: stabilize the source or deliberately segment archives around discontinuities, then verify continuous timestamps.
  5. Repeat the original NS_E_ARCHIVE_GAP_DETECTED operation through the same protocol and service account; do not substitute a different client-side test.
  6. After NS_E_ARCHIVE_GAP_DETECTED, verify the expected next state and retain any later HRESULT as a separate pipeline result.

For NS_E_ARCHIVE_GAP_DETECTED, success means the same operation crosses this checkpoint and produces the expected next state, not merely that the symbolic code disappears.

Comparison with adjacent states

Primary distinction: abort due to broadcast is a mode incompatibility; gap detected is continuity loss during an active archive.

Nearby resultDifferent checkpoint
NS_E_AUTHORIZATION_FILE_NOT_FOUNDCompare its own symbolic boundary and the first failing call; it must not be grouped automatically with NS_E_ARCHIVE_GAP_DETECTED.
NS_E_ARCHIVE_ABORT_DUE_TO_BCASTRelative to NS_E_ARCHIVE_GAP_DETECTED, this neighboring result belongs to another state or validation branch even when the user-visible symptom is similar.
NS_E_WIZARD_RUNNINGFor NS_E_ARCHIVE_GAP_DETECTED, use the object type and operation sequence to determine which result is authoritative.

Changes that do not establish the cause

  • repairing only the output filename while the source continues dropping/restarting.
  • For NS_E_ARCHIVE_GAP_DETECTED, a broad reinstall is especially weak evidence here because it changes many unrelated components while leaving the rejected server precondition unexplained.
  • Do not suppress NS_E_ARCHIVE_GAP_DETECTED or replace it with a generic “media server error”; retain the symbolic code and owning operation in telemetry.

Technical references

Close the incident only after NS_E_ARCHIVE_GAP_DETECTED clears on a current object.


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