| Previous | Next |
| ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE | ERROR_GENERIC_COMMAND_FAILED |
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED
The SMI primitive installer failed during setup or servicing.
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED is Windows status 14108 (0x0000371C) associated with a primitive installer operation in the servicing management infrastructure. For ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, the system meaning is “The SMI primitive installer failed during setup or servicing.” Preserve the value at the API boundary because subsequent cleanup or logging calls can overwrite the last-error state.
Operational meaning
For ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, the key question is whether the primitive operation completes its narrowly defined file, registry, service, or component action. The value describes a primitive installer operation in the servicing management infrastructure; it does not prove that the whole domain, DNS service, network, servicing stack, application package, or operating system has failed.
Likely impact: Manual recreation of the primitive side effect can leave the servicing database inconsistent with the machine. For ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, record the scope that was actually tested instead of escalating from one rejected object or phase to a system-wide outage.
Where this result appears
ERROR_SMI_PRIMITIVE_INSTALLER_FAILEDcan appear while processing a primitive installer operation in the servicing management infrastructure.ERROR_SMI_PRIMITIVE_INSTALLER_FAILEDcan appear while component installation, package servicing, manifest processing, or resource substitution.ERROR_SMI_PRIMITIVE_INSTALLER_FAILEDcan appear while a setup engine invoking an advanced, primitive, or generic installer step.ERROR_SMI_PRIMITIVE_INSTALLER_FAILEDcan appear while XML or localized-content parsing before a component can be committed.
Typical causes
- For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, the primitive receives invalid package data. - For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, the target resource is locked or unavailable. - For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, the operation violates servicing state. - For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, the underlying file, registry, or service call fails.
Diagnostic sequence
- capture
ERROR_SMI_PRIMITIVE_INSTALLER_FAILEDimmediately after the failing or status-returning call and record whether the API uses Win32, DNS_STATUS, HRESULT conversion, or callback semantics. - identify the exact target involved in a primitive installer operation in the servicing management infrastructure, including stable GUIDs, DNs, zone names, package identities, file hashes, policy names, or process identifiers as applicable.
- prove the state boundary: the primitive operation completes its narrowly defined file, registry, service, or component action.
- collect primitive installer type and target resource before restarting services, deleting objects, rebuilding packages, or changing policy.
- correlate first lower-level Win32 or HRESULT with CBS.log, setup logs, servicing stack events, installer stdout/stderr, manifest identity, XML bytes, and the first HRESULT or process exit code.
- for
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, determine whether the result is a failure, warning, informational completion, continuation request, or marker constant before choosing retry behavior. - for
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, after changing one responsible condition, repeat the same smallest operation and verify both success and absence of unintended partial effects.
Evidence to preserve
- For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, collect primitive installer type. - For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, collect target resource. - For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, collect first lower-level Win32 or HRESULT. - For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, collect CBS and setup log section. - For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, collect transaction rollback state.
For ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, correlate this evidence with CBS.log, setup logs, servicing stack events, installer stdout/stderr, manifest identity, XML bytes, and the first HRESULT or process exit code. Preserve raw identifiers and the first detailed diagnostic: translating everything to 14108 can hide whether the cause was validation, topology, authorization, replication, policy, file I/O, packaging, or an intentional continuation state.
Recovery and retry
The recovery objective for ERROR_SMI_PRIMITIVE_INSTALLER_FAILED is to repair the underlying target or package data and rerun through servicing so transaction ownership is preserved.
For ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, retry only after the recorded boundary changes and prior completion is known. Read-only discovery for ERROR_SMI_PRIMITIVE_INSTALLER_FAILED can usually be repeated with bounded backoff; directory mutations, DNS updates, policy installation, servicing actions, and PRI writes require a state check first. Backoff for ERROR_SMI_PRIMITIVE_INSTALLER_FAILED cannot repair malformed input, unsupported structure, identity collision, missing authority, or incompatible package metadata.
Telemetry and support fields
- For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, recordsmi_primitive_installer_failed_operation— producing API, command, callback, or servicing phase. - For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, recordsmi_primitive_installer_failed_target— stable object, zone, policy, package, file, or account identity. - For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, recordsmi_primitive_installer_failed_state_beforeandsmi_primitive_installer_failed_requested_state. - For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, recordsmi_primitive_installer_failed_first_status— earliest component-specific code before translation. - For
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, recordsmi_primitive_installer_failed_server,smi_primitive_installer_failed_process, UTC timestamp, and correlation ID.
A support bundle for ERROR_SMI_PRIMITIVE_INSTALLER_FAILED should include decimal 14108, hexadecimal 0x0000371C, the smallest reproducible request, target identity, effective configuration, and evidence from the owning Windows component. When documenting ERROR_SMI_PRIMITIVE_INSTALLER_FAILED, remove secrets from exported logs but keep SIDs, GUIDs, package-family names, record types, and hashes when they are needed to distinguish objects.
Difference from nearby results
ERROR_ADVANCED_INSTALLER_FAILED reports an advanced installer; this code names the lower-level primitive installer This distinction determines whether the correct next step is input correction, topology repair, continuation, policy review, package rebuild, or no error handling at all.
Practical validation scenario
A primitive registry operation fails on a protected key during package apply. CBS logs identify the exact target and access status for correction. A negative test should reproduce ERROR_SMI_PRIMITIVE_INSTALLER_FAILED with the responsible condition preserved; the recovery test should alter only that condition and confirm the intended final state.
Developer and administrator guidance
Developers should model ERROR_SMI_PRIMITIVE_INSTALLER_FAILED explicitly in the result domain instead of collapsing every nonzero value into “failed.” Administrators should capture evidence before destructive remediation and use the component that owns a primitive installer operation in the servicing management infrastructure. Monitoring for ERROR_SMI_PRIMITIVE_INSTALLER_FAILED should suppress range markers and classify warning, informational, cancellation, and continuation values separately from terminal failures.
References
- Microsoft: exact Win32 system error range — official context relevant to
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED. - Microsoft: Assembly manifests — official context relevant to
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED. - Microsoft: Side-by-side assemblies — official context relevant to
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED.
Looking for a different code? Search another status or error code.