What does HRESULT 0x80270006 (NAP_E_NOT_REGISTERED) mean?

 
Previous Next
NAP_E_STILL_BOUND NAP_E_NOT_INITIALIZED

NAP_E_NOT_REGISTERED

The NAP entity is not registered

NAP_E_NOT_REGISTERED is HRESULT 0x80270006 (signed decimal -2144927738, unsigned decimal 2150039558). AllStat, using winerror.h, describes it as “The entity is not registered with the NAP system.” The value has failure severity, facility 0x27, and code field 0x0006.

This is a legacy Network Access Protection result: Microsoft states that NAP is unavailable starting with Windows 10 and that current Windows Server releases do not include the former NAP, HRA, and HCAP roles; use the code for supported legacy systems, archived telemetry, compatibility components, or migrations rather than assuming a modern machine should expose the old platform.

Persistent registration is missing

NAP_E_NOT_REGISTERED indicates that a component is trying to enter a runtime relationship before its identity is present in NAP registration data. Microsoft documents this return from INapSystemHealthAgentBinding::Initialize when the SHA has not been registered earlier. The exact registration API depends on whether the caller is an SHA, SHV, or enforcement client, so the call site must be preserved.

Registration gaps

  • The component binary was deployed but its install-time Register operation never ran or failed under insufficient privilege.
  • An uninstall or repair removed the registration while a service or scheduled task still launches the component.
  • The runtime uses a different SystemHealthEntityId from the value stored during installation.
  • An image was generalized or restored without the machine-specific NAP registration state.
  • A 32-bit and 64-bit deployment path registered different component metadata and the active binary references the wrong one.

Registration checks

  • Capture the numeric entity ID and the exact Initialize or binding method that failed.
  • Query NAP management for the registered component list and compare vendor, version, CLSID, and category.
  • Review installer logs and security context for the last register, repair, upgrade, or unregister operation.
  • Verify that the running binary and registration record come from the same product version and installation root.

Repair procedure

  • Stop the runtime component so registration is not modified beneath active callbacks.
  • Run the supported registration path with the intended stable entity ID and complete metadata.
  • Read back the registration and verify ownership before calling Initialize again.
  • Exercise a real SoH exchange after binding; successful registration alone does not prove callback or policy configuration.

Difference from nearby NAP results

NAP_E_NOT_INITIALIZED means a registered component has not completed its runtime Initialize call. NAP_E_ID_NOT_FOUND can arise from a management lookup or deletion of an unknown ID and does not by itself prove that the current component skipped required installation. NAP_E_CONFLICTING_ID means a different registration already occupies the requested ID.

Retry and recovery

Registration is normally an administrative or installation action, not something every runtime call should perform automatically. Repair the persistent state once, then initialize. Auto-registering on each failure can steal an ID from another component or hide an incomplete deployment.

Practical scenario

A cloned legacy image contains the SHA executable and service entry but not its NAP registration. The service calls INapSystemHealthAgentBinding::Initialize and receives NAP_E_NOT_REGISTERED. Re-running the product’s registration step with the expected SystemHealthEntityId restores the binding path.

References


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