What does HRESULT 0xC80003EA (hrInvalidName) mean?

 
Previous Next
hrFeatureNotAvailable hrInvalidParameter

hrInvalidName

Why this is more specific than the message text

hrInvalidName means an ESE object name failed the naming contract before object lookup could succeed.

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

The key comparison is: hrObjectNotFound means a valid lookup missed; this result means the identifier itself is unacceptable. The first useful observation is to log the original Unicode name, byte length, normalization, separators, and whether it denotes a table, index, or database. This evidence separates malformed input from a valid name, path, or buffer that simply produced no result.

Related ESE conditions

hrInvalidFilenamethe filename component fails ESE rules even if the parent path exists
hrInvalidParameterthe function received a value or combination that violates its call contract
hrInvalidBufferSizethe supplied byte count is incompatible with the selected column type or operation

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 conditionan ESE object name failed the naming contract before object lookup could succeed
First corrective directionconstruct the name with the documented character and length rules and preserve it without lossy conversion

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.

Data for a reproducible case

  • the documented required-size value for any output buffer.
  • the unmodified argument value with its Unicode and byte lengths.
  • structure sizes, reserved fields, grbits, and API version.

Corrective workflow

  1. Freeze the failing request context and record 0xC80003EA, the Jet API name, and the current instance/session ownership.
  2. Apply the targeted fix: construct the name with the documented character and length rules and preserve it without lossy conversion.
  3. Before retrying the operation, reconcile the exact argument bytes and the absence of unintended object creation.

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.