fix(self-update): remove '--' from manifest XML comment — the real SxS 14001 cause#457
Merged
Merged
Conversation
…S 14001 cause The actual root cause of uffs-update.exe failing to start with ERROR_SXS_CANT_GEN_ACTCTX (os error 14001, "Invalid Xml syntax ... on line 1") was a literal double hyphen inside the manifest's XML comment: the comment body contained the example CLI invocation `uffs --update`, and XML forbids "--" anywhere inside a <!-- --> comment. Windows' strict side-by-side manifest parser rejected the whole manifest. This was present in BOTH the original #454 manifest and the #456 "minimal" rewrite — both carried that same `uffs --update` line in the comment — which is why #456 (dropping <assemblyIdentity>) did not fix it. The Application event log (SideBySide id 59) pinpointed it: "Error in manifest or policy file ... on line 1. Invalid Xml syntax." Fix: reword the comment so no "--" appears in the body, and add an explicit DO-NOT-USE-double-hyphen warning so this never regresses. Verified by extracting the embedded RT_MANIFEST from a freshly cross-compiled uffs-update.exe and running `xmllint --noout` on it: now well-formed (previously malformed). asInvoker is retained, so the #454 Installer-Detection / os error 740 fix still stands. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The actual root cause
uffs-update.exefailed to start on Windows withERROR_SXS_CANT_GEN_ACTCTX(os error 14001). Three independent diagnostics all point to the same line:SideBySide, id 59): "Error in manifest or policy file ... on line 1. Invalid Xml syntax."The embedded manifest's XML comment contained the literal example invocation
uffs --update— and XML forbids--(double hyphen) inside a<!-- -->comment. Windows' strict side-by-side manifest parser rejects the whole manifest.Why the earlier fixes missed it
That
uffs --updateline was in the comment of both the original #454 manifest and the #456 "minimal" rewrite. So #456 (which removed<assemblyIdentity>) never touched the real fault — the binary kept crashing identically. The breakthrough was the event log / sxstrace pinpointing line 1 / Invalid Xml, not the elements.Fix
Reword the comment so no
--appears in the body, plus an explicit DO-NOT-USE-double-hyphen warning to prevent regression.asInvokeris unchanged, so the #454 Installer-Detection / os error 740 fix still holds.Verification
Extracted the embedded
RT_MANIFESTfrom a freshly cross-compileduffs-update.exeand validated it:🤖 Generated with Claude Code