Skip to content

Bug: efc-archive-root-getter-unguarded-against-com-failure #696

Description

@drmoisan
  • Work Mode: full-bug

Summary

IOlObjects.ArchiveRootPath makes two live Outlook COM reads before it can validate anything, so a
disconnected or restarting Outlook process raises COMException rather than the
InvalidOperationException that the archive-root validator raises. Callers that guard only the
validator's exception remain exposed to the COM failure mode.

Environment

  • OS/version: Windows 11, Outlook desktop (VSTO add-in host)
  • Python version: not applicable; this is a .NET Framework 4.8.1 C# component
  • Command/flags used: not reproducible from a command line; requires a live Outlook session
  • Data source or fixture: a live Outlook profile whose store goes offline or whose RPC server becomes unavailable

Steps to Reproduce

  1. Open Outlook with the TaskMaster add-in loaded and an Explorer window active.
  2. Put the mailbox store into a disconnected or restarting state so a COM read of Root.FolderPath fails.
  3. Invoke any QuickFiler path that reads the archive root, for example a move or an open-folder action.

Expected Behavior

A COM failure reading the archive root is handled at one place, at the AppOlObjects boundary, and
either surfaces as a redacted user-facing diagnostic in the same shape the validator failure already
uses, or propagates by an explicit and documented decision.

Actual Behavior

COMException propagates from the getter. Issue 638 narrowed its new guard to
InvalidOperationException and added the regression test
MoveToFolderAsync_WhenArchiveRootThrowsComException_StillPropagates pinning that propagation, so the
narrowing is a recorded decision rather than an oversight. The decision about the COM failure mode was
deferred to this follow-up.

Logs / Screenshots

  • Attached minimal logs or screenshot
  • Snippet: not captured; the condition requires a live Outlook fault and no unit-testable seam exists at the getter today.

Impact / Severity

  • Blocker
  • High
  • Medium
  • Low

Source

From: docs/features/potential/2026-08-29-efc-archive-root-getter-unguarded-against-com-failure.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions