When updating my app using Sparkle, I'm encountering a timeout error on one specific macOS 26 machine. The error is:
Error: Timeout: agent connection was never initiated (null) (URL (null))
On other machines (same Sparkle package, identical update steps), the update completes without issue.
The update error log is as follows:
2025-10-29 10:40:20.679997+0800 0xc1b499 Default 0x0 1 0 launchd: [gui/501/xx-updater:] (lint): Assuming EnablePressuredExit=false given EnableTransactions=false.
2025-10-29 10:40:20.680040+0800 0xc1b499 Default 0x0 1 0 launchd: [gui/501 [100025]:] pending spawn, domain in on-demand-only mode: xxx-sparkle-updater
...
2025-10-29 10:40:20.688237+0800 0xc1b245 Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress:] (lint): Assuming EnablePressuredExit=false given EnableTransactions=false.
2025-10-29 10:40:20.688282+0800 0xc1b245 Default 0x0 1 0 launchd: [gui/501 [100025]:] pending spawn, domain in on-demand-only mode: xxx-sparkle-progress
...
2025-10-29 10:40:20.690603+0800 0xc186b1 Default 0x0 88691 0 myApp: (libxpc.dylib) [com.apple.xpc:connection] [0xa4ea9b700] activating connection: mach=true listener=false peer=false name=xxx-spki
2025-10-29 10:40:20.690784+0800 0xc1b499 Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater:] internal event: WILL_SPAWN, code = 0
2025-10-29 10:40:20.690790+0800 0xc1b499 Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater:] service state: spawn scheduled
2025-10-29 10:40:20.690791+0800 0xc1b499 Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater:] service state: spawning
2025-10-29 10:40:20.690820+0800 0xc1b499 Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater:] launching: ipc (mach)
2025-10-29 10:40:20.691242+0800 0xc1b499 Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater [91372]:] xpcproxy spawned with pid 91372
...
2025-10-29 10:40:39.924618+0800 0xc1b509 Error 0x0 91372 0 Autoupdate: [org.sparkle-project.Sparkle:Sparkle] Error: Timeout: agent connection was never initiated (null) (URL (null))
...
2025-10-29 10:41:41.406796+0800 0xc186b1 Default 0x3ae0314 88691 0 myApp: (libxpc.dylib) [com.apple.xpc:connection] [0xa4ea98140] activating connection: mach=true listener=false peer=false name=xxx-spks
2025-10-29 10:41:41.406917+0800 0xc1be50 Default 0x0 1 0 launchd: [gui/501/xxx-progress:] internal event: WILL_SPAWN, code = 0
2025-10-29 10:41:41.406931+0800 0xc1be50 Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress:] service state: spawn scheduled
2025-10-29 10:41:41.406932+0800 0xc1be50 Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress:] service state: spawning
2025-10-29 10:41:41.406956+0800 0xc1be50 Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress:] launching: ipc (mach)
2025-10-29 10:41:41.407447+0800 0xc1be50 Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress [91940]:] xpcproxy spawned with pid 91940
...
2025-10-29 10:41:42.129078+0800 0xc1be94 Default 0x0 91940 0 Updater: (libxpc.dylib) [com.apple.xpc:connection] [0x8d0c51540] activating connection: mach=false listener=false peer=false name=(anonymous)
2025-10-29 10:41:42.129120+0800 0xc1be62 Error 0x0 91940 0 Updater: [org.sparkle-project.Sparkle:Sparkle] Agent failed..
2025-10-29 10:41:42.129131+0800 0xc1be62 Error 0x0 91940 0 Updater: [org.sparkle-project.Sparkle:Sparkle] Error: Error: Agent Invalidating without having the chance to reply to installer (null) (URL (null))
The normal update log is as follows:
2025-10-29 17:14:03.835036+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-updater:] (lint): Assuming EnablePressuredExit=false given EnableTransactions=false.
2025-10-29 17:14:03.835072+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater:] internal event: WILL_SPAWN, code = 0
2025-10-29 17:14:03.835084+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater:] service state: spawn scheduled
2025-10-29 17:14:03.835084+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater:] service state: spawning
2025-10-29 17:14:03.835113+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater:] launching: semaphore
2025-10-29 17:14:03.835193+0800 0x62d160e Default 0x0 1 0 launchd: Last log repeated 600 times
2025-10-29 17:14:03.835476+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater [22630]:] xpcproxy spawned with pid 22630
2025-10-29 17:14:03.835483+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater [22630]:] internal event: SPAWNED, code = 0
2025-10-29 17:14:03.835484+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater [22630]:] service state: xpcproxy
2025-10-29 17:14:03.835551+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-updater [22630]:] internal event: SOURCE_ATTACH, code = 0
2025-10-29 17:14:03.842289+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress:] (lint): Assuming EnablePressuredExit=false given EnableTransactions=false.
2025-10-29 17:14:03.842324+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress:] internal event: WILL_SPAWN, code = 0
2025-10-29 17:14:03.842327+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress:] service state: spawn scheduled
2025-10-29 17:14:03.842328+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress:] service state: spawning
2025-10-29 17:14:03.842363+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress:] launching: semaphore
2025-10-29 17:14:03.842778+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress [22631]:] xpcproxy spawned with pid 22631
2025-10-29 17:14:03.842784+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress [22631]:] internal event: SPAWNED, code = 0
2025-10-29 17:14:03.842785+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress [22631]:] service state: xpcproxy
2025-10-29 17:14:03.842862+0800 0x62d1c9d Default 0x0 1 0 launchd: [gui/501/xxx-sparkle-progress [22631]:] internal event: SOURCE_ATTACH, code = 0
I investigated the issue using log show, and found that:
-
On the affected machine, after submitting the xxx-sparkle-progress job to launchd, the process did not start immediately. There was a delay of more than 1 minute before the actual spawn and subsequent agent connection, resulting in a timeout.
-
On the working machine, [bundleId]--sparkle-progress and xxx--sparkle-updater are both launched almost simultaneously. Both are triggered promptly (semaphore acquired), and the update works correctly
Questions
Is there any way to further diagnose or locate the cause of the delayed pending spawn of xxx-sparkle-progress by launchd? What could cause such a delay, given that the update works normally on other machines with the same environment?
Additional context
the timeout only occur on some macOS 26 installations, not universally.
When updating my app using Sparkle, I'm encountering a timeout error on one specific macOS 26 machine. The error is:
Error: Timeout: agent connection was never initiated (null) (URL (null))On other machines (same Sparkle package, identical update steps), the update completes without issue.
The update error log is as follows:
The normal update log is as follows:
I investigated the issue using log show, and found that:
On the affected machine, after submitting the xxx-sparkle-progress job to launchd, the process did not start immediately. There was a delay of more than 1 minute before the actual spawn and subsequent agent connection, resulting in a timeout.
On the working machine, [bundleId]--sparkle-progress and xxx--sparkle-updater are both launched almost simultaneously. Both are triggered promptly (semaphore acquired), and the update works correctly
Questions
Is there any way to further diagnose or locate the cause of the delayed pending spawn of xxx-sparkle-progress by launchd? What could cause such a delay, given that the update works normally on other machines with the same environment?
Additional context
the timeout only occur on some macOS 26 installations, not universally.