From 6866743519d216cea751bc40fe77ef3e92baf584 Mon Sep 17 00:00:00 2001 From: Lawrence Chen <54008264+lawrencecchen@users.noreply.github.com> Date: Sun, 8 Feb 2026 21:11:28 -0800 Subject: [PATCH] Map Sparkle error 4005 to "Move to Applications" message Error 4005 (updater permission) with underlying code 10 (cache directory creation failure) has the same root cause as 1003/1005: the app isn't in Applications. --- Sources/Update/UpdateViewModel.swift | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/Sources/Update/UpdateViewModel.swift b/Sources/Update/UpdateViewModel.swift index 68a867ed..7fc0bc4f 100644 --- a/Sources/Update/UpdateViewModel.swift +++ b/Sources/Update/UpdateViewModel.swift @@ -192,8 +192,6 @@ class UpdateViewModel: ObservableObject { } if nsError.domain == SUSparkleErrorDomain { switch nsError.code { - case 4005: - return "Updater Permission Error" case 2001: return "Couldn't Download Update" case 1000, 1002: @@ -204,7 +202,7 @@ class UpdateViewModel: ObservableObject { return "Insecure Update Feed" case 1, 2, 3001, 3002: return "Update Signature Error" - case 1003, 1005: + case 1003, 1005, 4005: return "Move to Applications" default: break @@ -239,10 +237,8 @@ class UpdateViewModel: ObservableObject { } if nsError.domain == SUSparkleErrorDomain { switch nsError.code { - case 4005: - return "macOS blocked cmuxterm from updating apps. Open System Settings → Privacy & Security → App Management, allow cmuxterm, then try again." case 2001: - return "cmuxterm couldn’t download the update feed. Check your connection and try again." + return "cmuxterm couldn't download the update feed. Check your connection and try again." case 1000, 1002: return "The update feed could not be read. Please try again later." case 4: @@ -250,8 +246,8 @@ class UpdateViewModel: ObservableObject { case 3: return "The update feed is insecure. Please contact support." case 1, 2, 3001, 3002: - return "The update’s signature could not be verified. Please try again later." - case 1003, 1005: + return "The update's signature could not be verified. Please try again later." + case 1003, 1005, 4005: return "Move cmuxterm into Applications and relaunch to enable updates." default: break