Here is some information that could help, or at least should be put in the open more.
I was var_dump()-ing the $current_user and I noticed that $current_user->user_level is not set or even in the object/array. I don’t know if this is a bug or not. I was hooking off of this and getting great failures. Subscriber should be user_level 0, right?
So, if you, or a plugin / function / etc is hooking off of this and subscribers are in the mix you should be getting (silent) fail.
There is this boolean in the $current_user called “level_0” – so that is (probably) a clear hook available.
Feedback welcome, I consider this a bug, but I am not sure on the intent or implications.