All is good now, you were right, the private channel server must have been down.
I am continuing to experience the same problem.
Steps I am doing:
1. Grab the idkey from either /1/generic/private/idkey or /2/money/idkey.
2. Over WebSocket, send {"op":"mtgox.subscribe","key":"idkey_as_from_API_call"}
3. Get response over WebSocket socket: {"message":"Invalid key provided","op":"remark","success":false}
@alikim You say it works for you. Can you verify the message you are sending over the WebSocket to subscribe to the private channel.
This is what I do over the websocket, the first message is a signed encrypted one:
{"call":"idkey","id":"2a4b88398c872f7150ea4f3a6f.....","nonce":13828......}
The response:
{"id":"2a4b88398c872f7150ea4f.....","op":"result","result":"GhXJXwx......."}
Subscribe command, goes out as plain text:
{"op":"mtgox.subscribe","key":"GhXJXwx......."}
After that I don't receive anything, but the private channel - when /if it's up - will send it's proper messages, for example when you place an order.
I believe if the channel is not working it just won't send you messages but you can still get silently subscribed.
Maybe it's working over the websocket but not working over http API?
Programming and maintenance of various gox servers and services is very sloppy to say the least, these people don't seem to care much...
P.S. On second thought, do you grab the key from http API and then try to use it in websocket API?
Maybe all three steps you've mentioned should go through the websocket, including step one (not using /1/generic/private/idkey or /2/money/idkey); the websocket will accept the key issued only through the websocket message?