diff --git a/adaptive/learner/skopt_learner.py b/adaptive/learner/skopt_learner.py
index b325a2317b89475c6faaf1f7cc7944012930ebc1..f344499948bd013ed9951ec7f0ad74bf39569729 100644
--- a/adaptive/learner/skopt_learner.py
+++ b/adaptive/learner/skopt_learner.py
@@ -27,11 +27,13 @@ class SKOptLearner(Optimizer, BaseLearner):
         self.function = function
         super().__init__(**kwargs)
 
-    def tell(self, x, y, fit=True):
-        if y is not None:
-            # 'skopt.Optimizer' takes care of points we
-            # have not got results for.
-            super().tell([x], y, fit)
+    def tell(self, x, y, fit=True):    
+        super().tell([x], y, fit)
+
+    def tell_pending(self, x):
+        # 'skopt.Optimizer' takes care of points we
+        # have not got results for.
+        pass
 
     def remove_unfinished(self):
         pass
@@ -46,7 +48,10 @@ class SKOptLearner(Optimizer, BaseLearner):
             # estimator of loss, but it is the cheapest.
             return 1 - model.score(self.Xi, self.yi)
 
-    def ask(self, n, add_data=True):
+    def ask(self, n, tell_pending=True):
+        if not tell_pending:
+            raise NotImplementedError('Asking points is an irreversible '
+                'action, so use `ask(n, tell_pending=True`.')
         points = super().ask(n)
         # TODO: Choose a better estimate for the loss improvement.
         if self.space.n_dims > 1: