Update can't be installed 1.22.1 -> 1.22.2

I downloaded Bike 1.22.1 via the DMG file from the HogBay Software website. I’m using macOS 15.6.1. After starting the program, an update to 1.22.2 is immediately suggested, but after downloading and extracting the file, I keep getting this error message:

Any ideas?

Cheers, Nils

First, thanks, I’ve fixed the default download link to download 1.22.2. Also you can download any particular release from this site:

Regarding the update error, I’m not sure. I just tried 1.22.1 → 1.22.2 on both Tahoe and macOS 15 in a VM and it worked OK. I did get prompted on macOS 15 that updater wanted to update file on my desktop (that’s where app was). I said yes, but maybe if you said no (now or at a previous time) the might have caused problem? I’m not sure.

I guess you could retry a few times from a few locations and see if that makes a difference. Ie, download an earlier version from above versions link, and see if the updates works in different scenarios.

I’ve tried this with versions of Bike 2 Preview today for multiple locations (Desktop, /Applications, Downlaods folder) and I still get the error. How can I help you to debug this? Anything to search for in the system logfiles?

I’ve removed everything related to Bike under ~/Library, too, but after then after re-installing and trying out the update process I still get the same update error with no description what went wrong.

I’ve just added some logging for this for future 2.0 Bike releases. You might also be able to get some logging info for the error you are seeing in Console.app.

  1. Open Console.app
  2. Start live streaming
  3. In search field enter: process: Bike
  4. In Bike > Check For Updates
  5. Switch back to console and look for errors.

The Console logs will be many. You can Command-K to clear them right before you run Check For Updates to make finding any errors a little easier.

Note Also, do you have any network firewall setup? That might be problem. Generally Sparkle (the update system I use) is pretty well tested.

Here are the log statements:

standard	12:11:19.056583+0100	Bike	Connection 8: ready C(N) E(N)
standard	12:11:19.056729+0100	Bike	[C8] event: client:connection_reused @0.053s
standard	12:11:19.056791+0100	Bike	Task <8A8C49B1-9CA1-45A9-947B-01ABC38B5CB0>.<1> now using Connection 8
standard	12:11:19.056824+0100	Bike	Connection 8: received viability advisory(Y)
standard	12:11:19.056869+0100	Bike	Task <8A8C49B1-9CA1-45A9-947B-01ABC38B5CB0>.<1> sent request, body N 0
standard	12:11:19.366242+0100	Bike	Task <8A8C49B1-9CA1-45A9-947B-01ABC38B5CB0>.<1> received response, status 200 content K
standard	12:11:19.963823+0100	Bike	Task <8A8C49B1-9CA1-45A9-947B-01ABC38B5CB0>.<1> done using Connection 8
standard	12:11:19.963902+0100	Bike	[C8] event: client:connection_idle @0.960s
standard	12:11:19.963982+0100	Bike	Task <8A8C49B1-9CA1-45A9-947B-01ABC38B5CB0>.<1> response ended
standard	12:11:19.965255+0100	Bike	Task <8A8C49B1-9CA1-45A9-947B-01ABC38B5CB0>.<1> summary for task success {transaction_duration_ms=962, response_status=200, connection=8, protocol="h2", domain_lookup_duration_ms=3, connect_duration_ms=47, secure_connection_duration_ms=25, private_relay=false, request_start_ms=54, request_duration_ms=0, response_start_ms=363, response_duration_ms=597, request_bytes=105, request_throughput_kbps=3308, response_bytes=1417168, response_throughput_kbps=2314, cache_hit=false}
standard	12:11:19.969480+0100	Bike	Task <8A8C49B1-9CA1-45A9-947B-01ABC38B5CB0>.<1> finished successfully
standard	12:11:19.970516+0100	Bike	[0x121bd1840] activating connection: mach=false listener=false peer=false name=org.sparkle-project.InstallerLauncher
standard	12:11:19.972279+0100	Installer	[0x1496065c0] activating connection: mach=false listener=false peer=true name=org.sparkle-project.InstallerLauncher.peer[78607].0x1496065c0
standard	12:11:20.026983+0100	Bike	[0x121bd1840] invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
standard	12:11:20.027044+0100	Bike	[0x1206ae6f0] activating connection: mach=true listener=false peer=false name=com.hogbaysoftware.Bike-spki
standard	12:11:20.027061+0100	Installer	[0x1496065c0] invalidated because the client process (pid 78607) either cancelled the connection or exited
standard	12:11:20.061160+0100	Autoupdate	[0x14c004200] activating connection: mach=true listener=true peer=false name=com.hogbaysoftware.Bike-spki
standard	12:11:20.061340+0100	Autoupdate	[0x14c004310] activating connection: mach=true listener=true peer=false name=com.hogbaysoftware.Bike-spkp
standard	12:11:20.061424+0100	Autoupdate	[0x14c104080] activating connection: mach=false listener=false peer=true name=com.hogbaysoftware.Bike-spki.peer[78607].0x14c104080
standard	12:11:20.073075+0100	Autoupdate	OK: EdDSA signature is correct
standard	12:11:20.625824+0100	Autoupdate	[0x60000064c3c0] activating connection: mach=true listener=false peer=false name=com.apple.analyticsd
standard	12:11:20.626324+0100	Autoupdate	Enabling System Keychain Always due to platform
standard	12:11:20.626441+0100	Autoupdate	[0x600000668000] activating connection: mach=true listener=false peer=false name=com.apple.trustd.agent
standard	12:11:20.631148+0100	Autoupdate	Received configuration update from daemon (initial)
standard	12:11:22.041142+0100	filecoordinationd	Received state update for 78607 (app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>, running-active-NotVisible
standard	12:11:22.056231+0100	filecoordinationd	Received state update for 78607 (app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>, running-active-NotVisible
standard	12:11:34.251915+0100	Bike	-[NSPersistentUIManager flushAllChanges]
standard	12:11:34.256002+0100	Bike	-[NSPersistentUIManager flushAllChanges] finishing enqueued operations
standard	12:11:34.256176+0100	Bike	-[NSPersistentUIManager flushAllChanges]_block_invoke asyncing to main queue
standard	12:11:34.260798+0100	Bike	-[NSPersistentUIManager flushAllChanges]_block_invoke writing records
fehler	12:11:39.257401+0100	Autoupdate	Error: Timeout: agent connection was never initiated (null) (URL (null))
standard	12:11:39.258368+0100	Autoupdate	[0x14c104080] invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
standard	12:11:39.258418+0100	Autoupdate	[0x14c004200] invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
standard	12:11:39.258446+0100	Autoupdate	[0x14c004310] invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
standard	12:11:39.261775+0100	Bike	[0x1206ae6f0] Re-initialization successful; calling out to event handler with XPC_ERROR_CONNECTION_INTERRUPTED
standard	12:11:39.261957+0100	Bike	[0x1206ae6f0] invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
standard	12:11:39.262563+0100	Bike	window <NSWindow: 0x12180d200> windowNumber=6098a finishing close
standard	12:11:39.271725+0100	Bike	order window: 608ec op: 1 relative: 6098a related: 0
standard	12:11:39.271775+0100	Bike	order window: 6098a op: 0 relative: 0 related: 0
standard	12:11:39.310689+0100	Bike	order window front conditionally: 6098d related: 0
standard	12:11:39.363198+0100	Autoupdate	Entering exit handler.
standard	12:11:39.363224+0100	Autoupdate	Queueing exit procedure onto XPC queue. Any further messages sent will be discarded. activeSendTransactions=0
standard	12:11:39.363266+0100	Autoupdate	Cancelling XPC connection. Any further reply handler invocations will not retry messages
standard	12:11:39.363275+0100	Autoupdate	[0x60000064c3c0] invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
standard	12:11:39.363317+0100	Autoupdate	XPC connection invalidated (daemon unloaded/disabled)
standard	12:11:39.363313+0100	Autoupdate	Exiting exit handler.
standard	12:11:41.786588+0100	runningboardd	Invalidating assertion 615-582-6906644 (target:[app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>:78607]) from originator [osservice<com.apple.coreservices.launchservicesd>:582]
standard	12:11:41.789366+0100	Bike	order window front conditionally: 6098d related: 0
standard	12:11:41.790229+0100	Bike	0x113008b00 - [PID=0] WebProcessCache::setApplicationIsActive: (isActive=0)
standard	12:11:41.800870+0100	useractivityd	-- Demoting self.advertisingProcess to nil (was UserActivityClient(pid=78607/com.hogbaysoftware.Bike uuids={0A30A173-5533-4D0C-9625-5C6D9846641B })) and trigger pickNewAdvertisement because the previous advertisingProcess had a current activity.
standard	12:11:41.847126+0100	runningboardd	Invalidating assertion 615-978-6906643 (target:[app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>:78607]) from originator [osservice<com.apple.WindowServer(88)>:978]
standard	12:11:41.896877+0100	runningboardd	[app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>:78607] Ignoring jetsam update because this process is not memory-managed
standard	12:11:41.896893+0100	runningboardd	[app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>:78607] Ignoring suspend because this process is not lifecycle managed
standard	12:11:41.896914+0100	runningboardd	[app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>:78607] Set darwin role to: UserInteractiveNonFocal
standard	12:11:41.896955+0100	runningboardd	[app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>:78607] Ignoring GPU update because this process is not GPU managed
standard	12:11:41.897030+0100	runningboardd	[app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>:78607] Ignoring memory limit update because this process is not memory-managed
standard	12:11:41.907762+0100	runningboardd	Calculated state for app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>: running-active (role: UserInteractiveNonFocal) (endowments: <private>)
standard	12:11:41.908494+0100	filecoordinationd	Received state update for 78607 (app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>, running-active-NotVisible
standard	12:11:41.908714+0100	gamepolicyd	Received state update for 78607 (app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>, running-active-NotVisible
standard	12:11:48.953741+0100	Bike	Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service
standard	12:11:48.953840+0100	Bike	[0x6000037b03c0] invalidated after the last release of the connection object
standard	12:11:48.953990+0100	Bike	0x113013f10 - ~ProcessAssertion: Releasing process assertion 'XPCConnectionTerminationWatchdog' for process with PID=78941
standard	12:11:49.875097+0100	Bike	Connection 8: cleaning up
standard	12:11:49.875210+0100	Bike	[C8 65547D1E-C2B9-452E-A16A-1BAA68B3DC85 Hostname#797ce496:443 quic-connection, url hash: 97793b6f, definite, attribution: developer] cancel
standard	12:11:49.877090+0100	Bike	[C8 65547D1E-C2B9-452E-A16A-1BAA68B3DC85 Hostname#797ce496:443 quic-connection, url hash: 97793b6f, definite, attribution: developer] cancelled
	[C8.1.1.1 319FCDC7-F6E4-4EC5-BEB8-2AFD129412A6 2003:f0:cf40:d800:cc65:2670:c97a:6420.49917<->IPv6#23684fd2.443]
	Connected Path: satisfied (Path is satisfied), viable, interface: en0[802.11], ipv4, ipv6, dns, uses wifi
	Privacy Stance: Not Eligible
	Duration: 30.874s, DNS @0.002s took 0.003s, TCP @0.006s took 0.020s, TLS 1.3 took 0.025s
	bytes in/out: 1423763/947, packets in/out: 170/134, rtt: 0.029s, retransmitted bytes: 0, out-of-order bytes: 0
	ecn packets sent/acked/marked/lost: 0/0/0/0
standard	12:11:49.880127+0100	Bike	nw_protocol_tcp_log_summary [C8.1.1.1:3] 
	[BE656C33-F0F0-42E8-80A1-C85403F84904 <private>:49917<-><private>:443]
	Init: 1, Conn_Time: 19.504ms, SYNs: 1, WR_T: 0/0, RD_T: 0/0, TFO: 0/0/0, ECN: 0/0/0, Accurate ECN (client/server): Disabled/Disabled, TS: 1, TSO: 1
	rtt_cache: none, rtt_upd: 7, rtt: 29.781ms, rtt_var: 20.625ms rtt_nc: 29.781ms, rtt_var_nc: 20.625ms base rtt: 15ms
	ACKs-compressed: 6, ACKs delayed: 138 delayed ACKs sent: 0
standard	12:11:49.880217+0100	Bike	nw_flow_disconnected [C8 IPv6#23684fd2.443 cancelled parent-flow ((null))] Output protocol disconnected
standard	12:11:49.881505+0100	Bike	nw_connection_report_state_with_handler_on_nw_queue [C8] reporting state cancelled
standard	12:11:49.881637+0100	Bike	Connection 8: done
standard	12:11:49.881769+0100	Bike	tcp_output [C8.1.1.1:3] flags=[F.] seq=3955204351, ack=538412300, win=24151 state=FIN_WAIT_1 rcv_nxt=538412300, snd_una=3955204288
standard	12:11:49.891441+0100	Bike	tcp_input [C8.1.1.1:3] flags=[F.] seq=538412324, ack=3955204351, win=127 state=FIN_WAIT_1 rcv_nxt=538412300, snd_una=3955204351
standard	12:11:49.891535+0100	Bike	tcp_output [C8.1.1.1:3] flags=[F.] seq=3955204351, ack=538412300, win=24151 state=FIN_WAIT_1 rcv_nxt=538412300, snd_una=3955204351
standard	12:11:52.042113+0100	filecoordinationd	Received state update for 78607 (app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>, running-active-NotVisible
standard	12:11:52.051265+0100	filecoordinationd	Received state update for 78607 (app<application.com.hogbaysoftware.Bike.189315375.189315380(501)>, running-active-NotVisible

And here’s the summary of ChatGPT debugging this:

Summary of Bike auto-update failure (Apple Silicon, macOS)

  • Auto-update via Sparkle consistently fails with:
    “An error occurred while running the updater. The remote port connection was invalidated from the updater.”

  • Download and signature verification succeed (EdDSA signature is correct).
    The failure happens when Sparkle tries to start the installer via XPC.

What was tested / ruled out

  • Fresh reinstall (full removal of /Applications/Bike.app, reinstall from DMG)

  • App is located in /Applications (not translocated)

  • Gatekeeper assessment passes

  • No privileged helper present in /Library/PrivilegedHelperTools

  • No leftover helpers or launch daemons

  • Issue reproduces consistently on Apple Silicon

Relevant findings

  • Bike is sandboxed (com.apple.security.app-sandbox = true)

  • During update, Bike attempts to connect to XPC service:
    org.sparkle-project.InstallerLauncher

  • Console log shows:
    activating connection … name=org.sparkle-project.InstallerLauncher
    followed by XPC connection invalidation

  • However, in the app bundle there is no InstallerLauncher.xpc.
    Only these exist:

    • Sparkle.framework/.../XPCServices/Installer.xpc

    • Sparkle.framework/.../XPCServices/Downloader.xpc

Suspected root cause

  • Sparkle is configured to use an XPC service (InstallerLauncher) that is not present in the shipped bundle, or there is a mismatch between the Sparkle version/configuration and the packaged XPC services.

  • In a sandboxed app, this causes the updater XPC connection to be immediately invalidated, leading to the update failure.

Workaround

  • Manual updates via DMG work; Sparkle auto-update does not.

Thanks for digging into this.

I’m not sure about that AI diagnosis… issue being that update does work in vast majority (I think!) of cases, so I don’t think it can be a problem as large as files in wrong location…

After some churning my AI servant (overlord?) says:

The good news is I think I’ve found the issue. The logs show the update downloads and verifies successfully, but then the XPC service that handles installation times out before it can start.

I’ve just updated Sparkle (the update framework Bike uses) from 2.7.1 to 2.8.1. The 2.8.1 release specifically includes a fix for this — “Enforce RunAtLoad to reduce potential timeout issue when launching updater task.” That matches your error exactly.

Is it all true? I’m not sure, but it’s believable. (I’m terrible at debugging and understanding processes like this) I should update the latest Sparkle anyway. This will take a few versions to test, but the next 2.0 release will have the updated sparkle, then we can see if the release after that works correctly.

1 Like