Skip to content

fix(self-update): remove '--' from manifest XML comment — the real SxS 14001 cause#457

Merged
githubrobbi merged 1 commit into
mainfrom
fix/uffs-update-manifest-xml-comment
Jun 18, 2026
Merged

fix(self-update): remove '--' from manifest XML comment — the real SxS 14001 cause#457
githubrobbi merged 1 commit into
mainfrom
fix/uffs-update-manifest-xml-comment

Conversation

@githubrobbi

Copy link
Copy Markdown
Collaborator

The actual root cause

uffs-update.exe failed to start on Windows with ERROR_SXS_CANT_GEN_ACTCTX (os error 14001). Three independent diagnostics all point to the same line:

  • Error text: "...side-by-side configuration is incorrect... os error 14001"
  • Application event log (SideBySide, id 59): "Error in manifest or policy file ... on line 1. Invalid Xml syntax."
  • sxstrace: "INFO: Parsing Manifest File ... ERROR: Line 1: XML Syntax error. ERROR: Activation Context generation failed."

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 --update line 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. asInvoker is unchanged, so the #454 Installer-Detection / os error 740 fix still holds.

Verification

Extracted the embedded RT_MANIFEST from a freshly cross-compiled uffs-update.exe and validated it:

xmllint --noout <embedded-manifest>   →  well-formed   (was: malformed)

🤖 Generated with Claude Code

…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>
@githubrobbi githubrobbi enabled auto-merge (squash) June 18, 2026 04:56
@githubrobbi githubrobbi merged commit cf4664e into main Jun 18, 2026
19 checks passed
@githubrobbi githubrobbi deleted the fix/uffs-update-manifest-xml-comment branch June 18, 2026 04:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant