diff --git a/qlfile b/qlfile
index 773ef1a..c040f69 100644
--- a/qlfile
+++ b/qlfile
@@ -7,3 +7,4 @@ git ningle-fbr https://github.com/skyizwhite/ningle-fbr.git
 git lack-mw https://github.com/skyizwhite/lack-mw.git
 git trivial-backtrace https://github.com/hraban/trivial-backtrace.git
 ql cl-dotenv
+ql clack-errors
diff --git a/qlfile.lock b/qlfile.lock
index d52b632..59d04d7 100644
--- a/qlfile.lock
+++ b/qlfile.lock
@@ -38,3 +38,7 @@
  (:class qlot/source/ql:source-ql
   :initargs (:%version :latest)
   :version "ql-2018-10-18"))
+("clack-errors" .
+ (:class qlot/source/ql:source-ql
+  :initargs (:%version :latest)
+  :version "ql-2019-08-13"))
diff --git a/src/app.lisp b/src/app.lisp
index d653c10..d5fdf78 100644
--- a/src/app.lisp
+++ b/src/app.lisp
@@ -7,10 +7,12 @@
                 #:configure)
   (:import-from #:ningle-fbr
                 #:set-routes)
-  (:import-from #:hp/middlewares/recoverer
-                #:*recoverer*)
   (:import-from #:lack-mw
                 #:*trim-trailing-slash*)
+  (:import-from #:clack-errors
+                #:*clack-error-middleware*)
+  (:import-from #:hp/env
+                #:hp-env)
   (:import-from #:hp/renderer)
   (:export #:*app*))
 (in-package #:hp/app)
@@ -18,7 +20,10 @@
 (defparameter *app*
   (let ((app (make-app)))
     (set-routes app :system :hp :target-dir-path "routes")
-    (install-middleware app *recoverer*)
+    (install-middleware app (lambda (app)
+                              (funcall *clack-error-middleware*
+                                       app
+                                       :debug (string= (hp-env) "dev"))))
     (install-middleware app *trim-trailing-slash*)
     (static-path app "/img/" "static/img/")
     (static-path app "/style/" "static/style/")
diff --git a/src/middlewares/.keep b/src/middlewares/.keep
new file mode 100644
index 0000000..e69de29
diff --git a/src/middlewares/recoverer.lisp b/src/middlewares/recoverer.lisp
deleted file mode 100644
index 5937889..0000000
--- a/src/middlewares/recoverer.lisp
+++ /dev/null
@@ -1,31 +0,0 @@
-(defpackage #:hp/middlewares/recoverer
-  (:use #:cl
-        #:hsx)
-  (:import-from #:trivial-backtrace
-                #:print-backtrace)
-  (:import-from #:hp/env
-                #:hp-env)
-  (:export #:*recoverer*))
-(in-package #:hp/middlewares/recoverer)
-
-(defun error-page (condition)
-  (hsx
-   (html :lang "ja"
-     (head
-       (title "Internal Server Error"))
-     (body
-       (main
-         (h1 "500 Internal Server Error")
-         (when (string= (hp-env) "dev")
-           (hsx
-            (pre
-              (code (print-backtrace condition :output nil))))))))))
-
-(defparameter *recoverer*
-  (lambda (app)
-    (lambda (env)
-      (handler-case
-          (funcall app env)
-        (error (c)
-          `(500 (:content-type "text/html; charset=utf-8")
-                (,(hsx:render-to-string (error-page c)))))))))