diff --git a/src/metabase/api/meta/table.clj b/src/metabase/api/meta/table.clj
index 07e83da6196d3899eca13cef94391e276a2d8207..552bac779f07c5f38133a6618c81def79d3059bd 100644
--- a/src/metabase/api/meta/table.clj
+++ b/src/metabase/api/meta/table.clj
@@ -62,7 +62,7 @@
   {include_sensitive_fields String->Boolean}
   (->404 (sel :one Table :id id)
          read-check
-         (hydrate :db [:fields [:target]] :field_values)
+         (hydrate :db [:fields :target] :field_values)
          (update-in [:fields] (if include_sensitive_fields
                                 ;; If someone passes include_sensitive_fields return hydrated :fields as-is
                                 identity
diff --git a/src/metabase/models/hydrate.clj b/src/metabase/models/hydrate.clj
index 1c684efec9f4172b884879564cd2490217b1d43e..b5f81f4cc741af974601a5f22496f149cb6b8d75 100644
--- a/src/metabase/models/hydrate.clj
+++ b/src/metabase/models/hydrate.clj
@@ -117,7 +117,10 @@
 
 (defn- hydrate-vector
   "Hydrate a nested hydration form (vector) by recursively calling `hydrate`."
-  [results [k & more]]
+  [results [k & more :as vect]]
+  ;; TODO - it would be super snazzy if we could make this a compile-time check
+  (assert (> (count vect) 1)
+          (format "Replace '%s' with '%s'. Vectors are for nested hydration. There's no need to use one when you only have a single key." vect (first vect)))
   (let [results (hydrate results k)]
     (if-not (seq more) results
             (counts-apply results k #(apply hydrate % more)))))
diff --git a/test/metabase/models/hydrate_test.clj b/test/metabase/models/hydrate_test.clj
index bf98426bc2b7e51c829d403f7186bd8ca7806a83..af9098d703a87208e5a90e0272cd8f94690d9894 100644
--- a/test/metabase/models/hydrate_test.clj
+++ b/test/metabase/models/hydrate_test.clj
@@ -237,11 +237,13 @@
                   :b d2}
                  :b))
 
-;; specifying "nested" hydration with no "nested" keys should still work
-(expect {:a 1 :b 2}
-        (hydrate {:a 1
-                  :b d2}
-                 [:b]))
+;; specifying "nested" hydration with no "nested" keys should throw an exception and tell you not to do it
+(expect "Assert failed: Replace '[:b]' with ':b'. Vectors are for nested hydration. There's no need to use one when you only have a single key.\n(> (count vect) 1)"
+  (try (hydrate {:a 1
+                 :b d2}
+                [:b])
+       (catch Throwable e
+         (.getMessage e))))
 
 ;; check that returning an array works correctly
 (expect {:c [1 2 3]}