BTT 6.413 silently quits every 5-10 minutes

BTT 6.413 silently quits - Quit AppleEvent received with no crash log

Device information:

  • Type of Mac: MacBook Pro 16” M4 Pro
  • macOS version: Tahoe 26.3.1
  • BetterTouchTool version: 6.413

Describe the bug:
BTT silently and repeatedly quits throughout the day with no crash report generated in Console.app. There is no pattern to the timing - it happens randomly.

After digging through system logs, I can confirm:

  1. BTT receives a clean Quit AppleEvent each time — it is not crashing, it is being told to quit
  2. BTTRelaunch quits immediately before BTT dies every time
  3. No crash report is ever generated (exitStatus=0, voluntary exit)
  4. Bartender 6 is running but I confirmed the issue persists with Bartender fully killed
  5. Raycast is also running and appears heavily in the logs around the time of death

Relevant log excerpt (log show --predicate 'eventMessage contains "AppleEvent"' --last 3m --info):

2026-04-19 19:31:29.836622 BetterTouchTool: (AppKit) Handling Quit AppleEvent
2026-04-19 19:31:29.866413 loginwindow: [TAL] applicationQuit: for app:BTTRelaunch
2026-04-19 19:31:29.992888 loginwindow: [TAL] applicationQuit: for app:BetterTouchTool

From launchservicesd (exitStatus=0, voluntary):

ADDING { CFBundleShortVersionString=6.413, LSExitStatus=0 } — BetterTouchTool quitting

This has been happening consistently across multiple BTT versions (observed on 6.412 and 6.413). Other apps running that interact with input: Raycast, Bartender 6.

Happy to provide full log dumps if helpful. What additional info do you need?

could you send the full logs from ~/Library/Application Support/BetterTouchTool/Logs to me? (andreas@folivora.ai)

Your AI excerpt show BTT is actively being asked to quit by some other process. It could be another BTT process but then there should be more logs.

Thanks for looking into this. Reproduced the issue and emailed to you these logs.

I had a first quick look at your logs, one thing that you could try - disable the "Restart After Wake From Sleep" option. This should only be used if there is a real reason to:

While the logs seem to show your BTT restarting fine after sleep, this might still be related especially because your other logs also seem to indicate the issue is happening after sleep / on login screen:

Thank you. Yes, I enabled it, hoping this would solve the issue, thinking whatever kills it during sleep is the same thing that kills it during non-sleep times - that was my rationale.

I disabled it, restarted the app, and it got killed again while I was typing this message - survived for less than 2 minutes.

Ah then now the latest log would be interesting again, because now that "termination path" is eliminated and BTT should not have any other way to terminate itself.

Sent.

Very strange, from the logs it looks like something external is quitting BTT. There are no logs that would show any weird activity from BTT's watch dog process (BTTRelaunch), just standard quit requests.

Can you still try to quit BTTRelaunch process? (either via Activity Monitor or via terminal command "killall BTTRelaunch"). If it then still quits, it must be coming from some external process - unfortunately afaik there is no way to know which process is asking BTT to terminate.

I killed the ‘BTTRelaunch‘ with `killall` terminal command and made sure it is gone from the Activity Monitor. BTT survived for another 10-15 minutes and quit again.

Is there any way for me to nuke everything and start fresh? I was using CleanMyMac app to uninstall it, but I’m not sure if it leaves anything behind. All I need is my triggers, but I don’t know how to make sure this bug doesn’t creep in back when import my triggers from the local preset backup or from the iCloud.

I don't think this will help, if an external termination request is coming in reinstalling BTT won't help. CleanMyMac should remove everything though.

You mentioned in your previous post Raycast being in the logs multiple times. I haven't heard of something like this, but could it be killing BTT? Maybe because raycast doesn't allow other hyperkey apps running at the same time?

Yes, that could be the case. I tried wiring the Hyper Key in Raycast (before you fixed it in the current version), but Raycast complained. It warned me that BTT needs to be closed for the Hyper Key to work in Raycast, so I rolled back my Raycast changes, but it still might have been taking proactive steps against BTT in the background.

In 6.416 (uploading) I have added some more explicit logs that might actually be able to tell which app requested termination.

Additionally I have added a new hidden setting that will disable external termination (needs to be executed in terminal while BTT is quit):

defaults write com.hegenberg.BetterTouchTool BTTDisableTermination YES

Awesome, thank you!