Karabiner continuously retries background service registration
Details
Environment
- macOS 26.6.2
- Karabiner-Elements 16.3.2
Problem
Karabiner continuously tries to register its background services, even though those services are already running.
The registration attempts repeat every second, with an additional attempt approximately every three seconds. Each attempt makes macOS inspect Karabiner’s applications, service definitions, and signatures again, creating continuous background activity.
This continues after:
- A clean reinstall
- Restarting macOS
- Upgrading from 16.3.0 to 16.3.2
- Closing the Karabiner settings application
Karabiner’s own status tool reports all its background services as notFound, while launchctl shows the same services running and managed by macOS.
The existing filename and service-name mismatch also remains:
File: org.pqrs.service.agent.Karabiner-Core-Service.plist
Service name inside the file: org.pqrs.service.agent.Karabiner-Core-Service-rev2
Karabiner 16.2.0 added cleanup for an older version of this service. That older service no longer appears to be loaded, but the repeated checks and registration attempts still continue.
This may therefore be another cause of the same behavior reported in #4496 and #4518.
Evidence and reproduction
- Karabiner starts new copies of its service helpers about once per second, with new process IDs each time.
> sudo /usr/bin/log show --last 30s --style compact \
--predicate '(process == "Karabiner-Elements Privileged Daemons v2") OR (process == "Karabiner-Elements Non-Privileged Agents v2")' \
| grep 'Service.*status'
22:48:55 Karabiner-Elements Privileged Daemons v2[10031] Service ... status: 1
22:48:55 Karabiner-Elements Non-Privileged Agents v2[10032] Service ... status: 1
22:48:56 Karabiner-Elements Privileged Daemons v2[10034] Service ... status: 1
22:48:56 Karabiner-Elements Non-Privileged Agents v2[10035] Service ... status: 1
22:48:57 Karabiner-Elements Privileged Daemons v2[10036] Service ... status: 1
22:48:57 Karabiner-Elements Non-Privileged Agents v2[10037] Service ... status: 1- The helpers repeatedly call Register. The calls report success (error: 0), but registration is attempted again seconds later.
> sudo /usr/bin/log show --last 30s --style compact \
--predicate '(process == "Karabiner-Elements Privileged Daemons v2") OR (process == "Karabiner-Elements Non-Privileged Agents v2")' \
| grep 'Register'
22:48:45 Karabiner-Elements Privileged Daemons v2[9976] Register ... error: 0
22:48:45 Karabiner-Elements Non-Privileged Agents v2[9977] Register ... error: 0
22:48:53 Karabiner-Elements Privileged Daemons v2[10014] Register ... error: 0
22:48:53 Karabiner-Elements Non-Privileged Agents v2[10015] Register ... error: 0- Karabiner reports its services as missing even though macOS shows them running.
> "/Library/Application Support/org.pqrs/Karabiner-Elements/Karabiner-Elements Non-Privileged Agents v2.app/Contents/MacOS/Karabiner-Elements Non-Privileged
Agents v2" status
LaunchAgent(org.pqrs.service.agent.Karabiner-Core-Service.plist) notFound
LaunchAgent(org.pqrs.service.agent.Karabiner-Console-User-Server.plist) notFound
LaunchAgent(org.pqrs.service.agent.Karabiner-MultitouchExtension.plist) notFound > launchctl print "gui/$(id -u)/org.pqrs.service.agent.Karabiner-Core-Service-rev2" | grep -E 'state|managed_by'
managed_by = com.apple.xpc.ServiceManagement
state = runningExpected behavior
Once Karabiner’s background services are installed and running, it should stop trying to register them repeatedly.
Actual behavior
Karabiner repeatedly launches its service-registration helpers, causing continuous work in backgroundtaskmanagementd.
Source: pqrs-org/Karabiner-Elements