--- name: gururmm-install-report-failed-agent-v1 description: GuruRMM legacy-installer v1 must reuse /api/install-report AND create a visible "failed-install agent" server-side (Mike, 2026-06-12) metadata: type: project --- For the SPEC-029 legacy-fleet build, Mike decided (2026-06-12) the observable-installer requirement is satisfied by the EXISTING `install-report` channel, extended: - **Reuse `/api/install-report`** (do NOT invent a new beacon). The MSI already POSTs rich machine info + event/agent logs + service status there, success AND fail (`InstallReportCA` + `installer/install-report.ps1` → `server/src/api/install_report.rs`, recorded to `install_reports`). The **new NSIS 32-bit/legacy installer must POST the same payload** — this finally covers the legacy tier (today it has no installer → zero install-reports = the biggest blind spot). - **Failed-install agent IN v1 (Mike's call):** on a report indicating failure (service not Running after poll / no enrollment / connect-verification failed), the server **upserts a visible "failed-install" device record** — keyed by hostname + machine fingerprint (so retries update one record, no spam), carrying machine info + failed-step/reason + log refs + attempt count. Shows in the dashboard as FAILED-INSTALL (distinct from healthy agents), triage-able + alertable. **Reconcile** if the box later enrolls for real (don't leave a ghost). Success reports don't create a failed agent but still feed trend/near-fail analytics (failure-rate by OS/arch/version — build-shaping signal, mirrors SPEC-022 §5e patch telemetry). - Installer must **verify enroll/connect before declaring success** ("don't terminate until success") and emit a meaningful exit + a local diagnostic bundle on fail. Scope split: the running legacy-agent Coding Agent does the agent + NSIS installer (+ the install-report POST). The **server-side failed-install-agent + trend analytics is a separate, sequential** work item (can't run a 2nd agent in the same submodule checkout concurrently) → its own SPEC after the first branch lands. See [[gururmm-log-analysis-claude-cutover]] for the server deploy shape. **Note (Mike, 2026-06-12):** the legacy build must eventually be folded into the MAIN production builds for **agent parity** (not a separate side-build). build-windows.sh already emits legacy-x86/amd64 in WAVE 2, but the legacy INSTALLER + the SPEC-029 §12 fixes need to become first-class in the promoted pipeline. For now, scoped TEST artifacts off the `fix/legacy-32bit-agent` branch are fine (Mike OK'd) — productionize after the Win7 VM proof.