What does HRESULT 0xC8000414 (hrInvalidFilename) mean?

 
Previous Next
hrContainerNotEmpty hrInvalidBookmark

hrInvalidFilename

Where the operation crossed the contract

hrInvalidFilename means the filename component fails ESE rules even if the parent path exists.

This is the legacy Directory Service backup/restore HRESULT form of JET_errInvalidFilename (0xC8000414).

The key comparison is: hrInvalidPath addresses the directory/location; hrFileNotFound accepts the syntax but cannot locate the file. The first useful observation is to capture the literal filename, extension, reserved characters, device-name collisions, and normalization. This evidence separates malformed input from a valid name, path, or buffer that simply produced no result.

Reconstruct the engine state

  • Code-specific observation: capture the literal filename, extension, reserved characters, device-name collisions, and normalization.
  • the unmodified argument value with its Unicode and byte lengths; associate it with this result rather than with a later generic exception.
  • structure sizes, reserved fields, grbits, and API version.
  • the documented required-size value for any output buffer.

The ESE objects in play

Diagnostic layerAPI argument, naming, path, and buffer contracts
Typical API surfacethe specific Jet* function named by the caller and its structure definitions in esent.h
Code-specific conditionthe filename component fails ESE rules even if the parent path exists
First corrective directiongenerate a legal stable filename and avoid silent sanitization that could point to a different database

Many output APIs expose a required byte count, while fixed-width inputs must match a declared type exactly. The original Unicode value and byte length matter when diagnosing names and paths.

Repair without destroying evidence

  1. Freeze the failing request context and record 0xC8000414, the Jet API name, and the current instance/session ownership.
  2. Verify the code-specific precondition: capture the literal filename, extension, reserved characters, device-name collisions, and normalization.
  3. Apply the targeted fix: generate a legal stable filename and avoid silent sanitization that could point to a different database.
  4. Before retrying the operation, reconcile the exact argument bytes and the absence of unintended object creation.

Do not collapse these codes together

hrInvalidBufferSizethe supplied byte count is incompatible with the selected column type or operation
hrInvalidNamean ESE object name failed the naming contract before object lookup could succeed
hrBufferTooSmalla caller-provided output area cannot hold the value ESE is returning

Actions that can hide or worsen the problem

  • Do not silently trim, recode, or sanitize the value into a different identifier.
  • Do not grow a fixed-width input buffer as though it were a variable output.

Technical references


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