**Factory code**

```
app.factory('abcFactory', function ($http, Config, $log) {
    var serviceURL = Config.baseURL + '/results';
    return{
        results:function() {
            var promise = $http({
                method: 'GET',
                url: serviceURL,
                timeout: Config.httpTimeout
            }).then(function(response) {
                    return response;  

                },  function(reason) {
                    $log.error("Request Failed: ", reason)
                });

            return promise;
        }
    }
});

```

**Controller code**

```
app.controller('abcController',function ($scope, $log,abcFactory, Config)
{

        abcFactory.results(function(data){
            $scope.results =data;
        },function(response)
        {
          console.log("response"+response);

          if(response.status === 0)
          {
              console.log("gotcha");
               $scope.serviceTimedoutError(response.data, response.status, response.config);
          } else
          {
                console.log("gotcha");
                $scope.serviceFailure(response.data, response.status, response.config);
          }

        });
});

```

`$scope.results` populates fine when service has returned good response.

And, when there is an error I can see on console the error message coming from factory code's log saying `"Request Failed: blah blah "`.

**My issue:**
When there is an error, why I am not seeing error message in controller, it is not even printing `"gotcha"` in browser console. I need error details in controller, so that I can show it on view. I don't want to pass `$scope` in factory.

What wrong I am doing in Controller code?

If I am not wrong, I am doing something in line of [AngularJS Failed Resource GET](https://stackoverflow.com/questions/11598097/angularjs-failed-resource-get)
but not getting desired result.