diff --git a/python/ray/tune/checkpoint_manager.py b/python/ray/tune/checkpoint_manager.py
index <HASH>..<HASH> 100644
--- a/python/ray/tune/checkpoint_manager.py
+++ b/python/ray/tune/checkpoint_manager.py
@@ -188,8 +188,10 @@ class CheckpointManager:
         except KeyError:
             logger.error(
                 "Result dict has no key: {}. "
-                "checkpoint_score_attr must be set to a key in the "
-                "result dict.".format(self._checkpoint_score_attr)
+                "checkpoint_score_attr must be set to a key of the "
+                "result dict. Valid keys are {}".format(
+                    self._checkpoint_score_attr, list(checkpoint.result.keys())
+                )
             )
             return
 
diff --git a/python/ray/tune/trial.py b/python/ray/tune/trial.py
index <HASH>..<HASH> 100644
--- a/python/ray/tune/trial.py
+++ b/python/ray/tune/trial.py
@@ -618,9 +618,8 @@ class Trial:
         for criteria, stop_value in self.stopping_criterion.items():
             if criteria not in result:
                 raise TuneError(
-                    "Stopping criteria {} not provided in result {}.".format(
-                        criteria, result
-                    )
+                    "Stopping criteria {} not provided in result dict. Keys "
+                    "are {}.".format(criteria, list(result.keys()))
                 )
             elif isinstance(criteria, dict):
                 raise ValueError(
[Tune] Logging of bad results dict keys (#<I>)

[User complains](<URL>) about logging on failure of locating `checkpoint_score_attr ` in results dict not being informative.

I propose that we log the actual results dict keys and extended stopping criteria, which imho should not log the whole result dict as this might contain tensors.



Maybe there are other similar cases in tune library, in which I don't know my way around that good.