@paoloardoino i've figured out that WS quite always send last message for zeroed balance as: [0,"wu",["exchange","EOS",0,0,**null**]]. And nothing more... Of course my software treat it as unreliable data... and it stuck with wrong balance.
For wallet updates ('wu' message) that come from the trading engine the message with null in place of the available balance so we don't slow down the message flow. Only the 'wu' messages upon a calc request contain the available balance