Skip to content

Uninstall does not terminate running desktop app process, blocking reinstall #166

@blinkagent

Description

@blinkagent

Summary

Uninstalling Coder Desktop via the Control Panel "Uninstall a program" wizard completes successfully, but the Coder Desktop.exe process (and the VPN service background process) remain running in Task Manager. This causes reinstallation to silently fail — the app never launches again.

Root Cause

The MSI installer has no mechanism to close the running desktop app process during uninstall. The ServiceInstaller manages the Windows service lifecycle (StopOn = InstallUninstall_Wait, RemoveOn = Uninstall_Wait), but there is no corresponding WixCloseApplication or custom action to terminate the user-space desktop app.

After uninstall, the old Coder Desktop.exe process continues running and holds the AppInstance singleton key (Coder.Desktop.App via AppInstance.FindOrRegisterForKey). On reinstall and relaunch:

  1. The new instance calls AppInstance.FindOrRegisterForKey("Coder.Desktop.App")
  2. It finds the old (zombie) instance, so mainInstance.IsCurrent is false
  3. It calls RedirectActivationToAsync to the old instance
  4. The old instance's OnActivated receives a Launch activation kind, which hits the unhandled default case
  5. The warning activation for "Launch", which is unhandled is logged and nothing else happens
  6. The new instance exits, and the app appears to never start

Steps to Reproduce

  1. Install Coder Desktop and launch it (the app runs in the system tray)
  2. Uninstall via Control Panel → "Uninstall a program"
  3. Observe in Task Manager that Coder Desktop and Coder VPN Service background processes are still running
  4. Reinstall Coder Desktop and launch it
  5. The app never appears — no tray icon, no window
  6. Check the logs for: [WRN] activation for "Launch", which is unhandled

Expected Behavior

  • The uninstaller should terminate the running Coder Desktop.exe process before removing files
  • The VPN service should be fully stopped and removed
  • After reinstall, the app should launch normally

Suggested Fix

Add a WixCloseApplication element (from WixExtension.Util) to the MSI project targeting Coder Desktop.exe. This will gracefully close the running app process during uninstall/upgrade before files are removed. For example in Installer/Program.cs:

project.Include(WixExtension.Util);
project.WixSourceGenerated += doc =>
    doc.FindFirst("Package").AddElement(
        WixExtension.Util.ToXName("CloseApplication"),
        "Target=Coder Desktop.exe; CloseMessage=yes; RebootPrompt=no");

Created on behalf of @uzair-coder07

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions