           @_api.scheduler.trackView app, view.contentLabel
           resolve()
         .catch (e) =>
+          @_stats.apiCalls?.hideRenderShow?[app]?.active -= 1
           @_stats.apiCalls?.hideRenderShow?[app]?.failure += 1
           reject e
 

        .catch (e) =>
          clearTimeout timer
          @_stats.apiCalls?.prepare?[app]?.failure += 1
          @_activePrepareCalls[app] = @_activePrepareCalls[app] - 1
          console.error "prepare() call failed for app #{app}.", e
          reject e

  _prepare: (app) ->
    new promise (resolve, reject) =>
      @_activePrepareCalls[app] = @_activePrepareCalls[app] + 1
      @_stats.apiCalls?.prepare?[app]?.active += 1

      expire = =>
        @_stats.apiCalls?.prepare?[app]?.failure += 1
        @_stats.apiCalls?.prepare?[app]?.timeout += 1
        @_stats.apiCalls?.prepare?[app]?.active -= 1
        @_activePrepareCalls[app] = @_activePrepareCalls[app] - 1
        console.error "prepare() call timed out for app #{app}."
        reject new Error("prepare() call timed out.")
