Added one more error check

When server returns with no data or exception (server provides nothing)
- empty data gets put into transient and crap remains until expiration.

Check If the transient does not exist or has expired OR has no data,
refresh it.

Removed unneeded foreach loop