How to fix inexplicably undelivered/pending/blocked Skype messages

Update (20 April 2014): The original solution appears not to work after all. There is still a solution of sorts, but it's less than ideal. Read on if you are happy enough with a less-than-ideal solution, or just to see what the original solution was and why it doesn't seem to work after all.

Update (16 October 2014): I have been informed of an alternative, working solution under Mac OS X - see below.

Update (4 November 2014): A reader has informed me that the solution mentioned in the above update works under Windows too.

Update (17 October 2015): Another reader has written in with another alternative solution based on smartphone tethering - see below.

The problem

Sometimes, in an instant messaging conversation on Skype, messages are marked as "pending"[1] for no apparent reason: neither you nor your chat partner has blocked the other, and both of you are online. It seems inexplicable that these messages are not delivered to your chat partner. Sometimes, the messages remain blocked for hours or even days. Want to skip straight to the solution? Click here.

This intermittent bug (yes, I will be so bold as to refer to it as a bug) has been present in Skype for as long as I have been using it (roughly 2007 to the present, 2014), across (as far as I can recall) all of the updates to it that I have tried in that time. The Skype team are apparently either in denial that this bug exists despite the many reports attesting to it, or are unwilling or unable to resolve it.

I use Skype almost exclusively on Linux, so I can confirm that the bug occurs there, and the threads listed below describe the problem occurring under Windows, Mac OS X, iOS and Android, so it seems to be a platform-independent bug.

In any case, here is a sample of the threads in order of start date in which people report this bug on the Skype forums:

In none of these threads have I seen a solution or workaround posted. I discovered my own workaround years ago, and I have created this page to share it with you.

The solution in brief

In short, the solution is to create a second chat window with the user to whom your messages are being blocked, and send another message from that new window (I usually type something like "Unblocking our other window..."). In every case bar one in which I have tried this, the blocked messages in the original window have unblocked themselves within about five-fifteen seconds. Once they are unblocked, it is then safe to close the second chat window and return to the now-unblocked first window.

The solution in detail

Because Skype does not make it possible to create two individual chat windows to the same user, if the chat window in which messages are blocked is an individual chat window and not a group chat, then you are going to need to create a group chat in order to get up a second chat window to your contact. This could be slightly awkward, because you will be sending a message in it, but you only want to send that message to the blocked-message user, and not to any other contact you might have to add in order to create the group chat.

Update (20 April 2014): Unfortunately, it seems that this is exactly what you are going to have to do. I had my first opportunity to test the below solution, an unblocking group chat with one of the "Unblock My Chat" users, and it failed. My guess is that this is either because the user has been deleted, or because it had not accepted the contact details request, or because it was offline, or because of some combination of those three possibilities. I've had this page up for a while now and nobody has sent any feedback as to success or failure, but if this single opportunity I've had to test is typical, then it seems that it doesn't work. It seems, then, that the next best option is to include another online friend in the unblocking group chat, and to explain what you're doing, although admittedly this is not such a great solution.

Update (15 September 2014): A couple of months ago (it's taken some time to get around to this update) I received an email from a web administrator who confirmed that the method below worked for his company when he created his own dummy user for his company's staff to use. Unfortunately, I wasn't able to find out how his user differs from those below i.e. which of the three failure possibilities listed in the update above he had dealt with.

Update (16 October 2014): Yesterday, I received feedback confirming that the approach below does not work at least on Mac OS X, for the reason that the "Unblock My Chat" account cannot be added to group chats given that it cannot have accepted the contact details request. Additionally, this person reported that on his machine, the general approach of creating an additional individual chat did not work for a blocked group chat. His scenario was that when he was included in a group chat, he could not see any messages from that group, nor could he send messages to it. Group chats that he started were perpetually pending, yet he could send and receive messages from individuals. It's hard to know how general this failure is - whether it is specific to Skype on Mac OS X or whether it applies to all platforms, or whether it is even specific to this person's specific configuration. As always, I welcome the feedback of others. This person did report to me though that he found an alternative solution to the problem, which I've linked to below.

The now-redundant, apparently unworkable, details

Until the most recent version I've installed of Skype, it was possible under Skype-for-Linux to create group chats which included the "Skype Test Call" user (username "echo123"), and since this user is an automated bot, it was acceptable enough to send it an unblocking message along with the blocked-message user.

Sadly, it is no longer possible in the latest version of Skype to even send chat messages to the echo123 user, let alone to add it to a group chat. To that end, I've created a dummy user for the same purpose. It can be firstly added to your contacts, secondly to group chats with the blocked-message user, and thirdly sent, alongside your blocked-message user, the unblocking message in the group chat. These three steps, then, should allow you to unblock unexplained pending messages.

In fact, in the process of testing, I created three dummy users. Since I deleted each of them, all that remains is their usernames - the accounts behind them are empty. I thus will not (cannot) accept any contact details requests to any of these users, but I am hoping that it is not essential to the unblocking procedure that the secondary contact in the group chat has accepted any contact details request.

To add one of these users, perform a Skype Contact search for "Unblock My Chat". In the usual way, add any one of the three users whose results show up, but I'd recommend against adding the user with Skype Name "live:lairdshaw77", as you might forget the purpose of this user - I'd recommend instead that you add the user with the Skype Name "live:unblockmychat".

Well, that's it. I should add that I haven't actually tested this method with these new users, and have only tested it with the old echo123 user, so it's possible that it will not work as expected with the new users - I'd appreciate any feedback as to whether or not it works for you. Happy unblocking!

An alternative solution: delete your Skype personal data directory

As indicated above, I've received feedback that the following solution posted to the Skype user forums works where mine doesn't, at least under both Mac OS X and Windows. Probably it works on Linux too - please let me know if you have success with it under Linux or any other unlisted platform. Warning: this potential solution seems not to solve anything for some people, and instead to make things worse. Jamurai reports on the Skype forums that it resulted in the messaging box of a 30-person group chat being greyed out with the note "Messaging unavailable", and the thirty participants reduced to a single person, the most recently added, listed as "facebook:[username], ...". So, whilst this technique works for some, your mileage might vary.

To save you from clicking: the solution in brief is to delete your personal Skype data directory. The poster writes, to alleviate worries, that local message history will be restored from the Skype server on restarting Skype. Be cautious here though: as far as I know, Skype did not start storing all chat messages on its central server until relatively recently, and I am not sure in any case that it stores chat histories indefinitely, so if you want to be sure not to lose any of your chat history, then take a backup of this folder before you delete it.

The poster gives the following instructions for Mac OS X:

  1. Close Skype.
  2. Delete the folder "/Users/[your-username]/Library/Application Support/Skype" (where "[your-username]" should be replaced with your actual username. The poster recommends deleting this folder through Terminal using the "rm -rf" command).
  3. Restart Skype.

The reader who let me know that this works on Windows too suggests for the second step to enter %appdata% into Windows Search, which will bring up a "Roaming" folder, and to then click on that "Roaming" folder, which will open it in Windows Explorer, showing within it the Skype folder to delete. In case you want to delete it by some other means, the full path to the folder to be deleted is C:\Users\[your-username]\AppData\Roaming\Skype (where again "[your-username]" should be replaced with your actual username). There is a similar folder, C:\Users\[your-username]\AppData\Local\Skype (i.e. where "Roaming" is replaced with "Local"), which does not need to be deleted.

A second alternative solution: smartphone tethering

Another reader has written in to report success on three different machines using the following randomly-discovered solution:

  1. Tether the machine with a smartphone to give it internet access.
  2. Once internet access is successful, Skype starts sending messages.
  3. Send a message while the connection to the internet is still running through the smartphone. Disconnect the phone as soon as the message goes through.
  4. Now reconnect the machine to its usual internet connection and send a message.

Other possibilities

There is another possibility as to what's going on: