                             nil t nil nil
                             (doom--help-current-module-str)))
           (key (doom-module-from-path
-                (car (get-text-property 0 'location module-string)))))
+                (or (car (get-text-property 0 'location module-string))
+                    (user-error "Did not select a valid module")))))
      (list (car key)
            (cdr key))))
   (cl-check-type category symbol)

      (describe-function fn))))

(defun doom--help-modules-list ()
  (cl-loop for path in (doom-module-load-path 'all)
           for (cat . mod) = (doom-module-from-path path)
           for location = (cons (or (doom-module-locate-path cat mod "README.org")
                                    (doom-module-locate-path cat mod))

  (let ((path (doom-module-locate-path category module)))
    (unless (file-readable-p path)
      (error "'%s %s' isn't a valid module; it doesn't exist" category module))
    (if-let (readme-path (doom-module-locate-path category module "README.org"))
        (find-file readme-path)
      (if (y-or-n-p (format "The '%s %s' module has no README file. Explore its directory?"
                            category module))
