ci: resolve PSScriptAnalyzer 1.25.0 engine crash #5

Open
opened 2026-10-11 00:37:43 +00:00 by KofTwentyTwo · 6 comments
KofTwentyTwo commented 2026-10-11 00:37:43 +00:00 (Migrated from github.com)

Current reader head f1756d21ed fails scripts run 38098965365 in the PowerShell analyzer step:
https://github.com/KofTwentyTwo/MarkdownViewr.Windows/actions/runs/38098965365

Invoke-ScriptAnalyzer 1.25.0 throws "Object reference not set to an instance of an object." during per-file analysis using PSScriptAnalyzerSettings.psd1. This is an engine exception, not emitted lint findings. The reader change does not modify PowerShell scripts, analyzer settings or this workflow.

Related inherited observations: initial main scripts run 38097167189 ended cancelled; earlier AppKit/starter runs encountered the same upstream analyzer failure. Existing per-file isolation alone does not eliminate it.

Acceptance:

  • Identify the offending file/rule and reproducible analyzer defect against this exact input.
  • Apply an evidence-backed compatible fix without suppressing rules, ignoring errors or rerunning until green.
  • Preserve the required scripts check and validate the current head on hosted CI.

Do not treat this issue as a reason to resume the cleared all-AppKit-issues goal. It tracks this application's enforced CI gate. No failed run was restarted.

Current reader head f1756d21ede53e95a7ff5ef8bd1490ef9495cb25 fails scripts run 38098965365 in the PowerShell analyzer step: https://github.com/KofTwentyTwo/MarkdownViewr.Windows/actions/runs/38098965365 Invoke-ScriptAnalyzer 1.25.0 throws "Object reference not set to an instance of an object." during per-file analysis using PSScriptAnalyzerSettings.psd1. This is an engine exception, not emitted lint findings. The reader change does not modify PowerShell scripts, analyzer settings or this workflow. Related inherited observations: initial main scripts run 38097167189 ended cancelled; earlier AppKit/starter runs encountered the same upstream analyzer failure. Existing per-file isolation alone does not eliminate it. Acceptance: - Identify the offending file/rule and reproducible analyzer defect against this exact input. - Apply an evidence-backed compatible fix without suppressing rules, ignoring errors or rerunning until green. - Preserve the required scripts check and validate the current head on hosted CI. Do not treat this issue as a reason to resume the cleared all-AppKit-issues goal. It tracks this application's enforced CI gate. No failed run was restarted.
KofTwentyTwo commented 2026-10-11 01:34:48 +00:00 (Migrated from github.com)

The unchanged analyzer gate passed on fa0df78 (scripts 38101906179), and one local baseline analysis of all 13 build files under PSScriptAnalyzer 1.25.0/PowerShell 7.6.6 also completed with no findings. Earlier engine failures on f1756d2, 665ece7 and e7b6985 remain real; this success confirms intermittent behavior and does not establish a fix. No settings/rules were suppressed and no failed runs were restarted. Keep this issue open pending exact offending-file/rule diagnostics and an evidence-backed remedy.

The unchanged analyzer gate passed on fa0df78 (scripts 38101906179), and one local baseline analysis of all 13 build files under PSScriptAnalyzer 1.25.0/PowerShell 7.6.6 also completed with no findings. Earlier engine failures on f1756d2, 665ece7 and e7b6985 remain real; this success confirms intermittent behavior and does not establish a fix. No settings/rules were suppressed and no failed runs were restarted. Keep this issue open pending exact offending-file/rule diagnostics and an evidence-backed remedy.
KofTwentyTwo commented 2026-10-11 01:35:33 +00:00 (Migrated from github.com)

Current head 77dd04d scripts run 38102249407 again failed inside the unchanged PSScriptAnalyzer invocation. Security 38102249838 passed; the browser/build CI 38102249889 is still running. The intermittent analyzer defect remains unresolved; no rule exclusions or failed-run retries were introduced.

Current head 77dd04d scripts run 38102249407 again failed inside the unchanged PSScriptAnalyzer invocation. Security 38102249838 passed; the browser/build CI 38102249889 is still running. The intermittent analyzer defect remains unresolved; no rule exclusions or failed-run retries were introduced.
KofTwentyTwo commented 2026-10-11 02:15:18 +00:00 (Migrated from github.com)

Signed d3530d106f adds per-file analyzer names and full exception text, then rethrows. Version 1.25.0, repository rules, required check, and failure propagation remain unchanged; no retries or suppressions were introduced.

Scripts 38102867251, 38103608780 and 38104015152 passed on their actual heads. Earlier 38102249407 still failed inside the analyzer. These successes do not establish an engine fix; await the next full stack/file evidence if the exception repeats. The issue remains open.

Signed d3530d106fa54316308a532dd1bb2d784f0ef207 adds per-file analyzer names and full exception text, then rethrows. Version 1.25.0, repository rules, required check, and failure propagation remain unchanged; no retries or suppressions were introduced. Scripts 38102867251, 38103608780 and 38104015152 passed on their actual heads. Earlier 38102249407 still failed inside the analyzer. These successes do not establish an engine fix; await the next full stack/file evidence if the exception repeats. The issue remains open.
KofTwentyTwo commented 2026-10-11 02:19:14 +00:00 (Migrated from github.com)

The diagnostic now captures the exact 5c3988e scripts failure: InstalledUpdates.Tests.ps1, CommandInfo.get_Parameters -> UseCorrectCasing.AnalyzeScript -> concurrent analyzer syntax-tree callback. Retained full log: artifacts/analyzer-diagnostic-38104585530.log. It matches upstream #1708.

Signed local ce9afc6237 proposes a two-pass invocation: PSUseCorrectCasing alone, then every remaining configured rule. Settings/version remain unchanged; findings and exceptions still fail the required check. Permanent negative fixtures ensure both passes report their expected violations. All 13 repository files and a predetermined 20-iteration offending-file probe passed locally. This is an evidence-backed workaround, not yet a hosted fix; current navigation/CodeQL producers are still being observed before pushing it. No rule is suppressed and no failing run was restarted.

The diagnostic now captures the exact 5c3988e scripts failure: InstalledUpdates.Tests.ps1, CommandInfo.get_Parameters -> UseCorrectCasing.AnalyzeScript -> concurrent analyzer syntax-tree callback. Retained full log: artifacts/analyzer-diagnostic-38104585530.log. It matches [upstream #1708](https://github.com/PowerShell/PSScriptAnalyzer/issues/1708). Signed local ce9afc62378a1275dc723ee444066bd2c732cef5 proposes a two-pass invocation: PSUseCorrectCasing alone, then every remaining configured rule. Settings/version remain unchanged; findings and exceptions still fail the required check. Permanent negative fixtures ensure both passes report their expected violations. All 13 repository files and a predetermined 20-iteration offending-file probe passed locally. This is an evidence-backed workaround, not yet a hosted fix; current navigation/CodeQL producers are still being observed before pushing it. No rule is suppressed and no failing run was restarted.
KofTwentyTwo commented 2026-10-11 02:25:30 +00:00 (Migrated from github.com)

Hosted validation of the actual fix is now complete: signed/pushed 443b492 scripts 38104988748 SUCCESS, both PowerShell and JavaScript jobs. The two-pass invocation checked all 13 files, including the offending InstalledUpdates.Tests.ps1, with unchanged version/settings and both negative fixtures. All 55 Pester boundary tests passed, with zero failures/skips.

Together with the captured exact stack, 13-file local baseline and bounded 20-case probe, this verifies the repository's compatible mitigation. No rule suppression, exception swallowing or retry loop. The upstream engine bug itself remains upstream; the PR can close this scoped repository issue after its required review/merge.

Hosted validation of the actual fix is now complete: signed/pushed 443b492 scripts [38104988748](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/actions/runs/38104988748) SUCCESS, both PowerShell and JavaScript jobs. The two-pass invocation checked all 13 files, including the offending InstalledUpdates.Tests.ps1, with unchanged version/settings and both negative fixtures. All 55 Pester boundary tests passed, with zero failures/skips. Together with the captured exact stack, 13-file local baseline and bounded 20-case probe, this verifies the repository's compatible mitigation. No rule suppression, exception swallowing or retry loop. The upstream engine bug itself remains upstream; the PR can close this scoped repository issue after its required review/merge.
KofTwentyTwo commented 2026-10-12 16:04:05 +00:00 (Migrated from github.com)

The related shared Windows-signing gate hit the same upstream command-metadata race, plus a second exported-cmdlet rule. The fix is in https://github.com/KofTwentyTwo/standards/pull/41 at 1e2179a: every hosted check passes, including all 35 signing tests; 20 fresh local analyzer processes also pass. Every configured rule/file and the original deadlines are retained. Genuine maintainer review of that new change is pending. Application acceptance and local signed-distribution proof remain passed; production 1.0/dev publication is still pending.

The related shared Windows-signing gate hit the same upstream command-metadata race, plus a second exported-cmdlet rule. The fix is in https://github.com/KofTwentyTwo/standards/pull/41 at 1e2179a: every hosted check passes, including all 35 signing tests; 20 fresh local analyzer processes also pass. Every configured rule/file and the original deadlines are retained. Genuine maintainer review of that new change is pending. Application acceptance and local signed-distribution proof remain passed; production 1.0/dev publication is still pending.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/MarkdownViewr.Windows#5