| Previous | Next |
| NS_E_CURL_INVALIDPORT | NS_E_CURLHELPER_NOTAFILE |
NS_E_CURLHELPER_NOTADIRECTORY
NS_E_CURLHELPER_NOTADIRECTORY: evidence, boundary and retest
The useful reading of NS_E_CURLHELPER_NOTADIRECTORY (0xC00D132D) is not “media failed” but an operation requiring a directory URL received a file-like URL. This places the failure at the notadirectory URL check and narrows the evidence to collect before another attempt changes state.
Before any socket is opened, the player decomposes a URL into scheme, authority, host, port, path and escaped data before closing the notadirectory incident. It may also combine a relative reference with a base URL or convert a file URL into a path; each operation has a different validity rule in the notadirectory diagnostic record. In the case of NS_E_CURLHELPER_NOTADIRECTORY, preserve the earliest lower-level result because wrappers can map several different causes to the same HRESULT when isolating the notadirectory case.
Preserve the raw and parsed URL
| Capture | Why it separates NS_E_CURLHELPER_NOTADIRECTORY |
|---|---|
| Owning call | Record the API method, object identity, thread or callback and timestamp for the notadirectory URL check. |
| Decisive values | the original unmodified string, character count, encoding, base URL if any, parsed scheme, host, port and path, plus required and supplied output-buffer lengths while tracing the notadirectory path. |
| Object generation | Note when the reader, writer, graph, URL object, streaming session or metadata provider was created; stale state can reproduce NS_E_CURLHELPER_NOTADIRECTORY after configuration has changed. |
| First nested result | Keep the earliest codec, COM, socket, DNS, parser or provider status before NS_E_CURLHELPER_NOTADIRECTORY; later UI messages are less specific. |
| Comparison case | Use one known-good resource that exercises the same the notadirectory URL check while changing only the rejected precondition. |
Failure anatomy
The notadirectory url check is reached when an operation requiring a directory URL received a file-like URL. The caller must not assume that the next filter, packet, session or metadata state exists after NS_E_CURLHELPER_NOTADIRECTORY.
Use repeat with a URL whose final path component and trailing separator unambiguously denote a directory as the negative control at the notadirectory checkpoint. A later HRESULT means this checkpoint was cleared and the new result belongs to a different stage while tracing the notadirectory path.
Nearby results are not interchangeable
Main distinction: URL syntax errors occur before server DNS, proxy selection or streaming-session creation during a controlled notadirectory retest.
| Nearby HRESULT | How to compare it |
|---|---|
NS_E_CURL_CANTWALK | Compare the owning API and first rejected value; it belongs to a neighboring checkpoint, not automatically to the same cause as NS_E_CURLHELPER_NOTADIRECTORY. |
NS_E_CURL_INVALIDPORT | Use object state and operation order to decide which code is authoritative when both appear in one trace before closing the notadirectory incident. |
NS_E_CURLHELPER_NOTAFILE | Retain this result separately if it appears only after the NS_E_CURLHELPER_NOTADIRECTORY condition has cleared. |
One-component URL experiment
- Log
0xC00D132D,NS_E_CURLHELPER_NOTADIRECTORY, the exact operation and the first failure time when isolating the notadirectory case. - Preserve the original unmodified string, character count, encoding, base URL if any, parsed scheme, host, port and path, plus required and supplied output-buffer lengths at the notadirectory checkpoint.
- Do not reuse a graph, session, reader or metadata object created before the relevant configuration or resource changed while tracing the notadirectory path.
- Perform one isolated test: repeat with a URL whose final path component and trailing separator unambiguously denote a directory during a controlled notadirectory retest.
- Repeat through the same API and protocol path; a different player or local-copy test is useful only as a comparison, not as proof that the notadirectory URL check is fixed.
- Confirm the expected next state and retain any new HRESULT as a separate downstream result before closing the notadirectory incident.
What the parser result proves
| Retest result | Interpretation for NS_E_CURLHELPER_NOTADIRECTORY |
|---|---|
| The identical call still returns the code | The values governing the notadirectory URL check are unchanged, or the caller is still using an older object generation. |
| A fresh object succeeds | Lifetime or cached state contributed to NS_E_CURLHELPER_NOTADIRECTORY; correct object recreation instead of applying a machine-wide workaround when isolating the notadirectory case. |
| The call advances to another HRESULT | The the notadirectory URL check boundary was cleared. Diagnose the new code at its own format, graph, URL, network or metadata stage while tracing the notadirectory path. |
| Only one resource fails | The evidence favors content, URL, publishing point, stream, attribute or object-specific state rather than a global outage during a controlled notadirectory retest. |
Misleading actions
- blindly decoding and re-encoding the whole URL, which can change reserved delimiters and resource identity for evidence about notadirectory.
- Do not erase the first
NS_E_CURLHELPER_NOTADIRECTORYoccurrence by repeatedly retrying; callbacks and reconnects can replace the useful state with a later wrapper error before closing the notadirectory incident. - Do not publish credentials, protected-content material or complete private URLs in the notadirectory diagnostic record. Record redacted identifiers, lengths, hashes and protocol fields needed to reproduce the notadirectory URL check.
Technical references
- RFC 3986: URI generic syntax
- Handling URLs with WinINet
- CreateUri
- ParseURL
- Microsoft HRESULT registry
Treat NS_E_CURLHELPER_NOTADIRECTORY as resolved only when the same API path crosses this checkpoint; success through a different player or cached copy is merely supporting evidence at the notadirectory checkpoint.
Looking for a different code? Search another status or error code.
