| Previous | Next |
| ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED | ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED |
ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED
Packages for a PRI file merge must not include multiple main packages.
Treat ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED as a domain-specific result, not as a generic exception. Diagnosis begins with the exact operation, target identity, server or process that produced it, and the earliest lower-level diagnostic available at the same timestamp.
Operational meaning
The key question is whether the merge has exactly one main package that supplies authoritative identity and schema. The value describes a merge set containing more than one main package PRI; it does not prove that the whole domain, DNS service, network, servicing stack, application package, or operating system has failed.
Likely impact: Choosing a main package by file order makes output nondeterministic and can bind resources to the wrong identity. Record the scope that was actually tested instead of escalating from one rejected object or phase to a system-wide outage.
Where the result appears
- This result can appear while processing a merge set containing more than one main package PRI.
- This result can appear while merging resources.pri files for an app package, resource package, or deployment image.
- This result can appear while MakePri merge or build automation that combines package resource indexes.
- It can appear while validation of package family, main-package, bundle, schema, and canonical output constraints.
Typical causes
- two main-package outputs are included.
- a bundle was expanded incorrectly.
- artifact classification marks a resource package as main.
- incremental build leaves an obsolete main PRI.
Diagnostic sequence
- capture it immediately 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 merge set containing more than one main package PRI, including stable GUIDs, DNs, zone names, package identities, file hashes, policy names, or process identifiers as applicable.
- prove the state boundary: the merge has exactly one main package that supplies authoritative identity and schema.
- collect package role of every input and main package identities before restarting services, deleting objects, rebuilding packages, or changing policy.
- correlate artifact manifest with MakePri command line, input PRI inventory, package identities, schemas, file hashes, output path, tool version, and the first detailed merge diagnostic.
- determine whether the result is a failure, warning, informational completion, continuation request, or marker constant before choosing retry behavior.
- after changing one responsible condition, repeat the same smallest operation and verify both success and absence of unintended partial effects.
Evidence to preserve
- collect package role of every input.
- collect main package identities.
- collect artifact manifest.
- collect build directory age and hashes.
- collect MakePri classification diagnostic.
Correlate this evidence with MakePri command line, input PRI inventory, package identities, schemas, file hashes, output path, tool version, and the first detailed merge diagnostic. Preserve raw identifiers and the first detailed diagnostic: translating everything to 15154 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 this Win32 error is to select one authoritative main package and include only its compatible resource packages.
Retry only after the recorded boundary changes and prior completion is known. Read-only discovery for this Win32 error 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 this Win32 error cannot repair malformed input, unsupported structure, identity collision, missing authority, or incompatible package metadata.
Telemetry and support fields
- record
pri_merge_multiple_main_packages_not_allowed_operation— producing API, command, callback, or servicing phase. - record
pri_merge_multiple_main_packages_not_allowed_target— stable object, zone, policy, package, file, or account identity. - record
pri_merge_multiple_main_packages_not_allowed_state_beforeandpri_merge_multiple_main_packages_not_allowed_requested_state. - record
pri_merge_multiple_main_packages_not_allowed_first_status— earliest component-specific code before translation. - record
pri_merge_multiple_main_packages_not_allowed_server,pri_merge_multiple_main_packages_not_allowed_process, UTC timestamp, and correlation ID.
A support bundle for this Win32 error should include decimal 15154, hexadecimal 0x00003B32, the smallest reproducible request, target identity, effective configuration, and evidence from the owning Windows component. When documenting it, 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_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED finds distinct families; this code can occur within one family with multiple main packages 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 staging directory contains main PRI files from debug and release builds of the same app. Cleaning the directory leaves one authoritative main package. A negative test should reproduce it 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 it 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 merge set containing more than one main package PRI. Monitoring for this Win32 error 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 it.
- Microsoft: MakePri.exe command options — official context relevant to it.
- Microsoft: Package Resource Index files — official context relevant to it.
Looking for a different code? Search another status or error code.
