Microsoft 12009 Published by

Windows Package Manager v1.30.70-preview arrived on July 22, 2026, as a maintenance build that addresses two significant regressions without introducing new features. The release targets a catastrophic crash affecting --disable-interactivity when paired with the Resume experimental feature, a critical issue for enterprise automation pipelines, alongside a configuration elevation bug that broke DSC operations via app execution aliases. The 15 merged pull requests also cover infrastructure improvements, including certificate rotation, an NUnit v4 upgrade, and dependency updates for the WinGetLogViewer tooling. These stabilization patches have already been backported to the v1.29 stable branch, ensuring existing users can resolve the regressions without waiting for the next major milestone.



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.

Screenshot_from_2025_09_27_08_47_11

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.