diff --git a/Ganeti/HTools/Utils.hs b/Ganeti/HTools/Utils.hs
index 1e58bc33f6d49e65410b6b5fcbf2e76d3d2838cf..5611dbc9cbdf30c2b4090bc7b17267fd00e08c72 100644
--- a/Ganeti/HTools/Utils.hs
+++ b/Ganeti/HTools/Utils.hs
@@ -130,7 +130,8 @@ loadJSArray s = fromJResult s . J.decodeStrict
 fromObj :: (J.JSON a, Monad m) => [(String, J.JSValue)] -> String -> m a
 fromObj o k =
     case lookup k o of
-      Nothing -> fail $ printf "key '%s' not found in %s" k (show o)
+      Nothing -> fail $ printf "key '%s' not found, object contains only %s"
+                 k (show (map fst o))
       Just val -> fromKeyValue k val
 
 -- | Reads the value of an optional key in a JSON object.