No "return deferred.promise"? It will go to $q.reject(response).