Real stack trace from the operator's machine pinned it down: WinForms fires DataGridView.CellValueChanged as a side effect of DataGridViewColumn.HeaderText assignments inside InitializeComponent(), i.e. before PreviewForm's constructor has had a chance to run RunScan() and populate the `rows` field. UpdateSummaryLabel() then hit rows.Count(...) on a null source. Nothing to do with Outlook/COM at all - a pure WinForms initialization-order gotcha. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>