Investigating a 'Throttling respawn' error in the OS X Console
If you see a repeating error in the OS X Console utility that mentions "Throttling respawn," here is how to approach tackling it.
The system console lists much of the output of running programs as they perform various tasks, which includes errors and warnings that are not otherwise shown to you. For instance, if you can't start up Web sharing on your system but don't see any error messages, then you can check in the Console utility to see if any console messages are generated there when you try to enable Web sharing.
Even if you do not know what the error messages mean, you can copy them and ask people about them to get more insight into how to troubleshoot the problem.
You should normally see a continual stream of warnings and status messages output in the console, but sometimes you might see rapidly or regularly repeated errors shown, which indicates a problem. There are many instances of repeated console error messages, but one of the common ones is a message that mentions "Throttling respawn" for a specific process that repeats every 10 seconds.
This error indicates the system is failing to start up a background task, instead attempting to do so continually, which at the very least results in a cluttered console that prevents you from finding other items in the console.
I've touched on this topic, but here is one example of how to find the configuration involved for such an error, and prevent it from happening on the system.
- Look at the console messages
Generally when these errors happen the console will output several related messages in sequence, some of which may be more than one line long. Click the triangles next to the messages to expand them and see them in their entirety.
In this instance, we have a process called "net.culator.SIMBL.Agent" that is exiting with "code 1." In programming if a function exits with status "0" then it has completed its job properly, but if not then it will exit with another code that indicates some error status to the programmer. The exit code of 1 here means that the system launcher could not properly run the script for launching the process "net.culater.SIMBL.Agent."
The next message just indicates the system launcher will try to restart the process in 10 seconds. The final message is more specific to the program. The "posix_spawn" error that refers to a specific file indicates that the problem is that a required file cannot be found.
In all, these error messages suggest the system has instructions to automatically open a program on the system, but because some required files are not present the system's efforts result in an error; however, the system continues to follow its instructions every 10 seconds.
- Locate the launch agent
How do we tackle and prevent this error? The first step is to locate the instructions file for the system launcher that is causing this error.
The automatic launching of programs and tasks in OS X is done by the system launcher, called "launchd," which is an umbrella program under which all other programs run. There is a launchd process for the whole system, and one for your specific user account, which helps isolate programs you are running from those that other accounts are running.
In order to run a background task, the launcher needs instructions for how to handle the task (what files are involved, whether or not to automatically launch it upon quitting, and so on). When you open a program by double-clicking it you provide these instructions to the launcher, but they can also be provided in a configuration file called a launch agent or launch daemon, which can be found in one of the following locations on the hard drive:
Therefore, upon checking those locations, you should be able to find a file that is the same name as the process identified in the error. In this case, the error points to "net.culater.SIMBL.Agent," and upon checking those four locations on the boot drive you can see there was a file called "net.culater.SIMBL.Agent.plist."
- Open the agent file
With the agent file found, open it to see what resources it may be using. You can sometimes press the spacebar to perform a quick-look on the file, or you can open it in a text editor.
At this point, the only items you are interested in finding are any files on the filesystem that the launch agent references. In this case you can see the launch agent's settings contain a "Label," a "Program" reference, an option to "Run at Load," and some other configuration options.
At this point we have found the agent file that is associated with the error in the console, and all of the programs that it is trying to launch (the file itself is just a set of instructions, and is not the actual background task).
- Locate the programs
In the Finder go to the various locations of the programs that are referenced in the launch agent file to see if they are present and accessible. In this case the launch agent only references a single file package called "SIMBL.osax" (see screenshot 1) that should be in the /Library/ScriptingAdditions/ directory, but if it referenced others then you would look in those locations as well.
In checking the Finder in the specified locations, we can see there is no file "SIMBL.osax" in the /Library/Scripting Additions/ folder.
This finding makes sense given the error we are seeing in the Console, which also references this file in a "posix_spawn" error that itself indicates the file is missing.
At this point we've established that the repeated error is happening because the system has instructions to launch a program (the launch agent file) but is not able to launch it because the program is missing. Therefore, it tries again and again but fails each time.
The attempt every 10 seconds uses very little in the way of system resources and the program itself is a third-party program (had it been an Apple task then it would have been named "com.apple" instead of "net.culater"). Since the program the system is trying to launch has evidently been removed, we now have two options. If we need the program for some reason then we can look into reinstalling it; however, if not then we can remove the launch agent file from the Launch Agents folder so the system will not continually try to start a program that is not there.
Either of these options should prevent the system from repeating the same console message, which at the very least will help keep the console tidy and make troubleshooting other system processes easier.