Could not send unregistration request to daemon

During a debug process have you seen any of the following lines in your debugger/console logs?

void CLClientInvalidate(__CLClient*)",could not send unregistration request to daemon


CLClientRegister: could not send registration request to daemon

If so, you’ve probably already seen this Apple support link:

Well, I’m just going to validate a few things here for you.  (Before continuing this… check your code after briefly reading this blog.

  1. You will have to restore your iPhone.  (This is the solution that worked for me).  Please post a comment if you find a better solution.
  2. If you are coding using CLLocationManager you will more than likely notice that you only get 1 set of GPS values before the message starts appearing.  Also, the CLLocationManager startUpdatingLocation method will only call your delegate once.  (That is what was happening on my iPhone).
  3. If you dig through your iPhones “crash logs” via the Organizer application, you’ll more than likely witness that many applications are crashing.

I tried a multitude of workarounds and the only thing that sadly worked was a “restore” which took over 1 hour to complete.  I will say this, my iPhone runs a lot faster now!

, , , , ,

  1. #1 by Sebastian on July 4th, 2010

    Well, that’s not a nice solution to restore your iPhone. I have an iPhone and an iPod Touch for Development. I could restore both (even a 2nd iPod Touch used for Development from my mom), but what about the customers. Are you suggesting that my app could force customers to go through this painfull restore just because I get this error now (and they could too) ?

  2. #2 by Chris Danielson on July 4th, 2010

    I think the issue is more in line with a phone that is beginning to corrupt and less about a specific application causing this behavior.

  3. #3 by Steve McFarlin on July 28th, 2010

    I just ran across this issue, and traveled to the link in your post first. I am running a new iPhone 4 with iOS 4.0.1. I deleted my app, rebooted, clean, build, install and everything cleared up. I will post back if the issue arises again, and I end up having to restore. The only thing in my crash logs is my app. I have been using my phone for about a month. I have not been using apps very heavy though.

    I had changed some call sequences and refactored some of my code (refactored some SEL’s and protocols). I suspect there was an old object file that was being linked in that caused the issue, or a thrashed OS from debugging all day. Time will tell I guess.

    Thanks for the post.

  4. #4 by Anthony McCormick on December 9th, 2010

    Hi I had the same issue and i fixed it by
    Settings>General>Reset>Reset Location Warnings.

    I have posted about it here

    When i find a more user friendly solution i will also post it.


  5. #5 by ask on December 30th, 2010

    Thank you very much…its very helpful to me.Nice tutorial

  6. #6 by blauehavik on March 17th, 2011


    Thanks for posting this! I’ve run into your error, but not associated with any methods. The “could not send unregistration request to daemon” shows on the console all by it’s lonesome.

    I’ve tracked it to adWhirl house ads – displays every other ad. I haven’t gone any further yet, but wanted to get the data up to share. You and the blog you reference are the only useful information anywhere in sight.

    As a note, I did adjust my code as described in the other blog and restored my device as you recommend with no joy.

    Thanks again! And if anyone reading this fixes adWhirl – please post here!


  7. #7 by Vik M on July 23rd, 2011

    Hi All,

    I had the same issue as stated here and tried what was explained but still had the same issue reappear (and the link to this blog doesn’t work, at least not for me

    I decided to go through all code and check references and found that I had two alloc/init declarations to two different CLLocationManager’s within the same context, but different threads. By refactoring the code I now use the same CLLocationManager in both places by passing it as a parameter using performSelectorInBackground:withObject: and I no longer have the issue.

    I don’t know if this is still relevant to you guys here, but as this blog was the only one I found with at least two different approaches (which did help), I thought it best to post here to help anyone else who might be looking for alternatives (not to mention that I will probably do the same thing again and forget how I solved the issue)!

Comments are closed.