diff --git a/apiary-cookie.cabal b/apiary-cookie.cabal
--- a/apiary-cookie.cabal
+++ b/apiary-cookie.cabal
@@ -1,5 +1,5 @@
 name:                apiary-cookie
-version:             0.12.0
+version:             0.13.0
 synopsis:            Cookie support for apiary web framework.
 description:
   example: <https://github.com/philopon/apiary/blob/master/examples/auth.hs>
@@ -22,10 +22,11 @@
   other-extensions:    
   build-depends:       base               >=4.6   && <4.8
                      , bytestring         >=0.10  && <0.11
-                     , apiary             >=0.12  && <0.13
+                     , apiary             >=0.13  && <0.14
                      , cookie             >=0.4   && <0.5
                      , blaze-builder      >=0.3   && <0.4
                      , time               >=1.4   && <1.5
+                     , blaze-html         >=0.7   && <0.8
 
   hs-source-dirs:      src
   ghc-options:         -O2 -Wall
diff --git a/src/Web/Apiary/Cookie/Internal.hs b/src/Web/Apiary/Cookie/Internal.hs
--- a/src/Web/Apiary/Cookie/Internal.hs
+++ b/src/Web/Apiary/Cookie/Internal.hs
@@ -12,13 +12,16 @@
 import Web.Apiary.Wai
 import Web.Apiary
 import Web.Cookie
-import Data.Maybe
-import Data.Time
 
 import Control.Monad.Apiary.Filter.Internal
 import Control.Monad.Apiary.Filter.Internal.Strategy
 
+import Data.Maybe
+import Data.Time
+import Data.Monoid
+import Data.Apiary.Document
 import Blaze.ByteString.Builder
+import Text.Blaze.Html
 import qualified Data.ByteString as S
 
 cond :: (a -> Bool) -> (a -> b) -> (a -> b) -> a -> b
@@ -41,7 +44,8 @@
        -> proxy (w a)
        -> ApiaryT (SNext w as a) n m b
        -> ApiaryT as n m b
-cookie k p = function id $ \l r -> readStrategy (readQuery . Just) ((k ==) . fst) p (cookie' r) l
+cookie k p = function (DocPrecondition $ toHtml (show k) <> " cookie required") $ \l r ->
+    readStrategy (readQuery . Just) ((k ==) . fst) p (cookie' r) l
 
 cookie' :: Request -> [(S.ByteString, S.ByteString)]
 cookie' = 
