diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+0.4.1.2
+=======
+
+* Bug with not total case coverage is fixed.
+
 0.4.1.1
 =======
 
diff --git a/servant-auth-token-leveldb.cabal b/servant-auth-token-leveldb.cabal
--- a/servant-auth-token-leveldb.cabal
+++ b/servant-auth-token-leveldb.cabal
@@ -1,5 +1,5 @@
 name:                servant-auth-token-leveldb
-version:             0.4.1.1
+version:             0.4.1.2
 synopsis:            Leveldb backend for servant-auth-token server
 description:         Please see README.md
 homepage:            https://github.com/ncrashed/servant-auth-token#readme
diff --git a/src/Servant/Server/Auth/Token/LevelDB.hs b/src/Servant/Server/Auth/Token/LevelDB.hs
--- a/src/Servant/Server/Auth/Token/LevelDB.hs
+++ b/src/Servant/Server/Auth/Token/LevelDB.hs
@@ -11,7 +11,6 @@
 import Control.Monad.Reader
 import Control.Monad.Trans.Control
 import Control.Monad.Trans.Resource
-import Database.LevelDB
 import Servant.Server
 import Servant.Server.Auth.Token.Config
 import Servant.Server.Auth.Token.LevelDB.Schema (LevelDBEnv, newLevelDBEnv)
diff --git a/src/Servant/Server/Auth/Token/LevelDB/Schema.hs b/src/Servant/Server/Auth/Token/LevelDB/Schema.hs
--- a/src/Servant/Server/Auth/Token/LevelDB/Schema.hs
+++ b/src/Servant/Server/Auth/Token/LevelDB/Schema.hs
@@ -20,7 +20,6 @@
 import Data.Text (Text)
 import Data.Time
 import Data.Typeable hiding (Proxy)
-import Data.Vector (Vector)
 import Database.LevelDB
 import Safe
 
@@ -49,7 +48,6 @@
 import qualified Data.Foldable as F
 import qualified Data.Map.Strict as M
 import qualified Data.Set as S
-import qualified Data.Vector as V
 
 -- | ID of global model index
 newtype ModelId = ModelId { unModelId :: Int64 }
@@ -127,7 +125,7 @@
 
   default encodeKey :: (SafeCopy i, Typeable i) => i -> ByteString
   encodeKey i = runEncode $ do
-    pokeE tname
+    _ <- pokeE tname
     safePut i
     where
       tname = show $ typeRep (Proxy :: Proxy i)
@@ -346,7 +344,7 @@
       mp <- load db i
       case mp of
         Just p | userPermPermission p == perm -> fmap (WithField (userPermUser p)) <$> load db (userPermUser p)
-        Nothing -> pure Nothing
+        _ -> pure Nothing
   F.foldrM go Nothing ps
 
 -- | Select user groups and sort them by ascending name
@@ -513,8 +511,8 @@
 
 instance (SafeCopy k, SafeCopy v) => SafeCopy (WithField i k v) where
   putCopy a@(WithField k v) = contain $ do
-    safePut k
-    safePut v
+    _ <- safePut k
+    _ <- safePut v
     return a
   getCopy = contain $ WithField
     <$> safeGet
