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-parameteronly 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.