Skip to content

SignPath: match the MSI's program files under its install directory - #1736

Merged
abrichr merged 1 commit into
mainfrom
claude/signpath-msi-nested-paths
Nov 3, 2026
Merged

abrichr merged 1 commit into
mainfrom
claude/signpath-msi-nested-paths

Conversation

@abrichr

@abrichr abrichr commented Nov 3, 2026

Copy link
Copy Markdown
Member

Why

The SignPath test-signing request 7fa928cb from run 41576282781 failed about 30 seconds after it was submitted:

SignPath signing request has been successfully submitted
The signing request status is InProgress, which is not a final status; ...
Signing request status is Failed
##[error]The signing request is not completed. The final status is "Failed"

The submission was accepted, so the project slug, policy slug and origin checks passed. The request failed while SignPath was processing the package.

The unsigned artifact from that run shows the cause. In the MSI, both PE files are under the install directory, not the root:

Directory Parent File
INSTALLDIR (OpenAdapt Desktop) ProgramFiles64Folder (PFiles) openadapt-desktop.exe, openadapt-engine.exe

The artifact configuration's pe-file-set included *.exe. In SignPath, * does not match a directory separator, and min-matches defaults to 1, so the set matched nothing and the request failed.

Change

  • .signpath/artifact-configurations/openadapt-desktop-installers.xml: the includes are now **/*.exe and **/*.dll.
  • tests/test_native_signing.py: checks that every include in the MSI's PE file set is recursive.

After merge (SignPath web UI, founder)

SignPath doesn't read this file from the repository. To apply the fix:

  1. Paste the updated XML into OpenAdapt > Artifact configurations and keep it as the default.
  2. Dispatch a new SignPath test-sign run from main. The policy refuses re-runs, so don't re-run the old one.

If the new request also fails, the reason is on the request's page in SignPath (the GitHub log doesn't include it).

The test-signing request 7fa928cb (run 41576282781) failed. Inside the MSI,
openadapt-desktop.exe and openadapt-engine.exe sit under
PFiles/OpenAdapt Desktop/, and the pe-file-set included "*.exe", which does
not cross a directory separator and so matched nothing (min-matches defaults
to 1). Use "**/*.exe" and "**/*.dll", and test that every include is recursive.
@abrichr
abrichr merged commit 59dcd75 into main Nov 3, 2026
49 checks passed
@abrichr
abrichr deleted the claude/signpath-msi-nested-paths branch November 3, 2026 16:50
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