 
               .catch (err) =>
 
-                if err.name is 'KiteError' and \
-                   err.message is 'token is expired'
-
-                  return new Promise (resolve, reject) =>
-                    @transport?.expireToken =>
-                      resolve @transport.tell args...
+                if _errPromise = @handleKiteError err, args
+                  return _errPromise
 
                 KiteLogger.failed name, rpcMethod, err
                 throw err

kd         = require 'kd'
kitejs     = require 'kite.js'
Promise    = require 'bluebird'
KiteLogger = require '../kitelogger'



          .timeout MAX_WAITING_TIME

          .then (args) =>

            KiteLogger.started name, rpcMethod

            resolve (@transport?.tell args...

              .then (res) ->
