Story: Hotfix: Windows MSVC build treats an unused catch parameter as an error

Table of Contents

This page documents a story in Sprint 27. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

1. Goal

Make the MSVC build compile publish_service.cpp again.

2. Status

Field Value
State DONE
Parent sprint Sprint 27
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-10-06

3. Acceptance

  • The boost::not_a_dag catch parameter is unnamed.
  • No unused catch parameter remains in projects/.

4. Tasks

Task State Start End Description
Scaffold story: Hotfix: Windows MSVC build treats an unused catch parameter as an error DONE 2026-10-06 2026-10-06 Story scaffolding rides this task: documents, sprint wiring, and the scaffold PR. Close it before merging that PR.
Drop the unused catch parameter in publish_service.cpp DONE 2026-10-06 2026-10-06 MSVC flags the unused boost::not_a_dag catch parameter at publish_service.cpp:196 as C4101 and promotes it to an error under /W4 /WX.

5. Decisions

  • Remove the unused parameter name rather than log the exception. The handler already logs and throws a message specific to the circular dependency, and not_a_dag::what() says only "The graph must be a DAG."
  • No checker is added. A scan of projects/ for catch parameters that its own handler never mentions finds this one occurrence, and the compiler already fails the build on it wherever /W4 /WX is on.
  • No Linux job can catch this class: GCC has no warning for an unused exception parameter, and clang emits unused-exception-parameter only when asked. The Linux builds run -Wall -Wextra -Werror, so MSVC's C4101 under /W4 /WX is the only gate that sees it.

6. Out of scope

7. Result

publish_service.cpp:196 no longer names the boost::not_a_dag exception object, so the MSVC jobs clear the translation unit that stopped the Windows build at 512 of 6393. Landed with PR #2710. The full Windows build was not run here, so any later /W4 /WX failure in the remaining translation units is still unknown.

Emacs 29.3 (Org mode 9.6.15)