Skip to content

docs(ci): replace the msstore pin's guess with the actual root cause - #243

Merged
mangokingTW merged 1 commit into
mainfrom
docs/msstore-pin-real-root-cause
Aug 29, 2026
Merged

docs(ci): replace the msstore pin's guess with the actual root cause#243
mangokingTW merged 1 commit into
mainfrom
docs/msstore-pin-real-root-cause

Conversation

@mangokingTW

Copy link
Copy Markdown
Owner

The comment I added when v1.5.7's Store submit failed blamed v0.4.0's switch to NativeAOT + trimming and the Azure.Storage.Blobs 12.25.0 → 12.29.1 bump. That was wrong, and a wrong theory sitting in a pin comment is worse than no theory — the next person to touch this would have chased the build configuration.

The real cause is microsoft/msstore-cli#162:

UploadTimeoutOption = new Option<long>("--uploadTimeout", "-ut")
{
    CustomParser = result => { if (result.Tokens.Count == 0) return 100; ... }   // no DefaultValueFactory
};

System.CommandLine only invokes a CustomParser when the option is actually present on the command line. Omit it and the value falls back to default(long) = 0, which becomes Retry.NetworkTimeout = TimeSpan.FromSeconds(0) — every request is cancelled the instant it starts, the retry policy burns six attempts, and the upload fails without transferring a byte.

  • Affects v0.4.0 and v0.4.1. v0.3.9 predates the option entirely.
  • Presents as a bare Error while uploading the application package. after a consistent ~25s (ours was ~23s), with no stack trace. The real exception only surfaces under --verbose, which also logs the submission's SAS-bearing FileUploadUrl — so it must never run in a public CI log. That is what made it expensive to diagnose from our side.
  • Fixed by #163, merged 2026-08-25. No release carries it yet — v0.4.1 shipped 2026-08-20, before the merge.

Why the pin stays at v0.3.9

v0.3.9 has neither #154 nor #162 (both were introduced in v0.4.0), and there is nothing else in v0.4.x this workflow needs. Working around #162 by passing --uploadTimeout explicitly would mean carrying someone else's bug by hand for no gain. The comment now says exactly what to wait for: a release later than v0.4.1.

Comment-only change; no behaviour difference.

The comment added when v1.5.7's Store submit failed blamed v0.4.0's switch
to NativeAOT/trimming and an Azure.Storage.Blobs bump. That was wrong.

It is microsoft/msstore-cli#162: v0.4.0 added --uploadTimeout with a
CustomParser but no DefaultValueFactory. System.CommandLine only invokes a
CustomParser when the option is present, so omitting it yields
default(long) = 0, which becomes Retry.NetworkTimeout of zero seconds and
cancels every request immediately. v0.4.0 and v0.4.1 are both affected;
v0.3.9 predates the option entirely.

Fixed upstream in #163 (merged 2026-08-25) but not in any release yet, so
the pin holds and now says what it is waiting for.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NTm2CAGgE9W54UDimTuwef
@mangokingTW
mangokingTW merged commit 4191a93 into main Aug 29, 2026
9 checks passed
@mangokingTW
mangokingTW deleted the docs/msstore-pin-real-root-cause branch August 29, 2026 06:19
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