Summary
EfcFormController reads _globals.Ol.ArchiveRootPath at five places, none of them guarded, so an
unresolvable or cross-store archive root still raises InvalidOperationException from each. Issue 638
guarded only the three reads in EfcDataModel.
Environment
- OS/version: Windows 11, Outlook desktop (VSTO add-in host)
- Python version: not applicable; this is a .NET Framework 4.8.1 C# WinForms component
- Command/flags used: not reproducible from a command line; requires the Email Filer Combined form
- Data source or fixture: an Outlook profile whose archive root is unresolvable or resolves across stores
Steps to Reproduce
- Open Outlook with a profile whose archive root is unresolvable or resolves to a different store.
- Open the Email Filer Combined form.
- Exercise a path that reaches any of the five reads, including the breadcrumb bind path.
Expected Behavior
Each read is routed through the same guarded helper shape issue 638 introduced, so an unresolvable or
cross-store archive root produces a redacted diagnostic or a defined no-op rather than an unhandled
exception.
Actual Behavior
InvalidOperationException is raised at each unguarded read. Four of the five are absorbed by the
log-only boundary sinks reported separately, so they present as a silent no-op; the fifth sits on the
breadcrumb bind path.
Logs / Screenshots
Impact / Severity
Source
From: docs/features/potential/2026-08-29-efcformcontroller-five-unguarded-archive-root-reads.md
Summary
EfcFormControllerreads_globals.Ol.ArchiveRootPathat five places, none of them guarded, so anunresolvable or cross-store archive root still raises
InvalidOperationExceptionfrom each. Issue 638guarded only the three reads in
EfcDataModel.Environment
Steps to Reproduce
Expected Behavior
Each read is routed through the same guarded helper shape issue 638 introduced, so an unresolvable or
cross-store archive root produces a redacted diagnostic or a defined no-op rather than an unhandled
exception.
Actual Behavior
InvalidOperationExceptionis raised at each unguarded read. Four of the five are absorbed by thelog-only boundary sinks reported separately, so they present as a silent no-op; the fifth sits on the
breadcrumb bind path.
Logs / Screenshots
Impact / Severity
Source
From: docs/features/potential/2026-08-29-efcformcontroller-five-unguarded-archive-root-reads.md