title: angular-ui/ui-router $stateChangeError never fires for a state that does not exist
body: <p>My issue is that ui-router <code>$stateChangeError</code> is not triggered by a "404" invaild state.</p>
  
  <p>I know for sure that my on <code>$stateChangeSucess</code> fires correctly:</p>
  
  <pre><code>$rootScope.$on('$stateChangeSuccess', 
          function(event, toState, toParams, fromState, fromParams)
  </code></pre>
  
  <p>When I intentionally make an invalid state like so:</p>
  
  <pre><code> &lt;ui-view&gt;
      &lt;a ui-sref="foo" style="cursor: pointer;"&gt;Foo is not a state&lt;/a&gt;
   &lt;/ui-view&gt;
  </code></pre>
  
  <p>The <code>$stateChangeError</code> event is not fired, I know I have the correct signature </p>
  
  <pre><code>angular
      .module('blocks.router')
      .run(['$rootScope', function($rootScope) {
          $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {
              console.log('$stateChangeError fired!');
          });
      }]);
  </code></pre>
  
  <p>And I add my function to <code>$stateChangeError</code> at the same time I add my working <code>$stateChangeSuccess</code>.</p>
  
  <p><strong>Any suggestions to what I might be doing wrong?</strong></p>