Windows Package Manager 1.30.70-preview fixes CI/CD breaking crash, config regressions
The Windows Package Manager team dropped v1.30.70-preview, and if you're running winget in automated deployment pipelines, this one actually matters. The build nails two regressions that were breaking real-world workflows, not just theoretical edge cases.
This is Microsoft's latest preview release, posted July 22, 2026 at 22:34 UTC. The repo's commit log (6b3bc96, signed with GitHub's verified signature) shows 15 pull requests merged across the cycle. No new features. Per the release notes: "Nothing yet."
What you're getting is pure stabilization. And for the folks keeping automation scripts running overnight, that's the kind of boring that keeps you employed.
The crash nobody saw coming
The headline fix targets --disable-interactivity paired with the Resume experimental feature. Combine those two, and winget would throw E_UNEXPECTED (0x8000ffff) — the infamous "Catastrophic failure" error that makes DevOps engineers reach for the whiskey.
The bug's pretty specific. Resume checkpoints command-line arguments during installation. On resume or checkpoint validation, the code calls Argument::ForType() on every saved argument. But Execution::Args::Type::DisableInteractivity wasn't in the switch statement, so it hit the default case and blew up.
This is the kind of regression that shows up in manual testing but gets missed in CI because nobody's actually running headless installs with Resume enabled in the test harness. The fix landed in PR #6302 by @Trenly on June 22, and it's already cherry-picked to the v1.29 branch as PR #6303. So if you're on the stable line and hit this, the backport will catch you.
If you're keeping score, that's 13,000+ open issues for a tool that's supposed to just work. Microsoft says it's iterating fast, and the dual-preview-per-milestone cadence suggests they mean it. But the Resume feature is still experimental for a reason.
Configuration elevation went sideways
The second regression hits winget configure operations that use Desired State Configuration with elevation. When winget spawns an elevated helper process to enforce policy rules, the validation flow was comparing boolean values case-sensitively. Windows file paths aren't case-sensitive, but C++ string comparisons are.
The error message — "Failed to open processor path ... Win32 error 1920" — points at dsc.exe through an app execution alias. Aliases can have varying casing depending on how they're installed. The fix in PR #6307 by @JohnMcPMS flattens that validation flow so it doesn't matter.
Keep in mind that this is part of Microsoft's broader push toward declarative system configuration. Winget's integrating with DSC more deeply, which is useful for compliance-heavy environments. But the integration's still rough around the edges when it crosses platform boundaries.
The rest of the build
The remaining PRs are infrastructure and hygiene. Three of them rotate out stale Store certificates used in tests and replace them with generated ones. Security-wise, that's the kind of maintenance that doesn't make headlines until someone's actually exploiting it.
There's also a dependency update pass via dependabot for the WinGetLogViewer tooling: markdown-it 14.1.1 to 14.2.0, undici 7.25.0 to 7.28.0, and form-data 4.0.5 to 4.0.6. Probably security patches. Probably not worth a deep dive.
The test framework moved from an older NUnit to v4, which aligns with modern .NET practices. And two new contributors made their first PRs — @tianon-sso normalized line endings across the repo, and @idleberg fixed punctuation in error messages. Small wins, but they signal engagement.
@JohnMcPMS handled 8 of the 15 PRs as primary maintainer. @Trenly did 5. Between them, they're carrying the weight.
It's a rather small release for the attention it's getting, but the bugs it fixes are real. If you're automating package installs at scale, this is the build to grab.
Head here to the microsoft/winget-cli repository to grab v1.30.70-preview and check out the merged PRs for the full diff.
