diff --git a/lib/rest-core/promise.rb b/lib/rest-core/promise.rb
index <HASH>..<HASH> 100644
--- a/lib/rest-core/promise.rb
+++ b/lib/rest-core/promise.rb
@@ -167,7 +167,7 @@ class RestCore::Promise
         begin
           rejecting(e)
         rescue Exception => f # log user callback error
-          callback_error(f)
+          callback_error(f, true)
         end
       end
     end
@@ -196,8 +196,9 @@ class RestCore::Promise
   end
 
   # log user callback error
-  def callback_error e
+  def callback_error e, set_backtrace=false
     never_raise_yield do
+      self.class.set_backtrace(e) if set_backtrace
       if env[CLIENT].error_callback
         env[CLIENT].error_callback.call(e)
       else
should set_backtrace for callback error from rejecting