         version (thing->version thing)
         _       (assert version)
         handle  (thing->handle config :else version)]
-    (for [d     (.listFiles handle)
-          :when (.isDirectory d)]
-      (->T :namespace version (.getName d)))))
+    (if (.isDirectory handle)
+      (for [d     (.listFiles handle)
+            :when (.isDirectory d)]
+        (->T :namespace version (.getName d)))
+      (throw-e "No such version "
+               (:uri thing)))))
 
 (defmethod api/list-defs :filesystem [config thing]
   (let [thing     (ensure-thing thing)

          line  (line-seq (io/reader h))
          :let  [sym (read-string line)]]
      (-> current-version
        (->Ns  (namespace sym))
        (->Def (name sym))))))

        namespace (thing->namespace thing)
        _         (assert namespace)
        handle    (thing->handle config :else namespace)]
    (if (.isDirectory handle)
      (for [d     (.listFiles handle)
            :when (.isDirectory d)]
        (->T :def namespace (.getName d)))
      (throw-e "No such namespace "
               (:uri thing)))))

;; FIXME: this should really be handled in data generation not in data use
(defn- normalize-version [x]
