diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,10 @@
+### 0.3.3.0
+
+- In case of unreadable configuration, terminate the worker process by throwing
+  exception *TerminateWorkerProcess* which makes Nginx log the supplied message
+  and exit. To use this exception, the constraint on the version of the package
+  *ngx-export* was increased.
+
 ### 0.3.2.0
 
 - Do not pass the *first-run* flag to simple services with the
diff --git a/NgxExport/Tools.hs b/NgxExport/Tools.hs
--- a/NgxExport/Tools.hs
+++ b/NgxExport/Tools.hs
@@ -62,6 +62,7 @@
 import           Data.Aeson
 import           Control.Monad
 import           Control.Arrow
+import           Control.Exception
 import           Control.Concurrent
 import           GHC.Generics
 import           System.IO.Unsafe (unsafePerformIO)
@@ -517,28 +518,30 @@
     let nameF = nameBase f
         nameSsf = mkName $ "simpleService_" ++ nameF
         hasConf = isJust c
-        (sNameC, typeC, isJSON) =
+        (sNameC, typeC, readConf, unreadableConfMsg) =
             if hasConf
                 then let c' = fromJust c
                          tName = nameBase $ fst c'
                      in (mkName $ "storage_" ++ tName ++ '_' : nameF
                         ,conT $ mkName tName
-                        ,snd c'
+                        ,if snd c'
+                             then [|readFromByteStringAsJSON|]
+                             else [|readFromByteString|]
+                        ,[|"Configuration " ++ tName ++ " is not readable"|]
                         )
                 else undefined
         initConf =
             let eConfBs = varE confBs
             in if hasConf
                    then let storage = varE sNameC
-                            readConf = if isJSON
-                                           then [|readFromByteStringAsJSON|]
-                                           else [|readFromByteString|]
                         in [|readIORef $(storage) >>=
                                  maybe (do
                                             let conf_data__ =
                                                     $(readConf) $(eConfBs)
-                                            when (isNothing conf_data__)
-                                                terminateWorkerProcess
+                                            when (isNothing conf_data__) $
+                                                throwIO $
+                                                    TerminateWorkerProcess
+                                                        $(unreadableConfMsg)
                                             writeIORef $(storage) conf_data__
                                             return conf_data__
                                        ) (return . Just)
@@ -638,6 +641,10 @@
 -- elsewhere by a name comprised of the name of the custom type and the name of
 -- the service connected by an underscore and prefixed as a whole word with
 -- __/storage_/__. The stored data is wrapped in 'Maybe' container.
+--
+-- When reading of the custom object fails on the first service run, the
+-- service terminates the worker process by throwing an exception
+-- 'TerminateWorkerProcess' with a corresponding message.
 ngxExportSimpleServiceTyped :: Name         -- ^ Name of the service
                             -> Name         -- ^ Name of the custom type
                             -> ServiceMode  -- ^ Service mode
@@ -666,6 +673,10 @@
 -- elsewhere by a name comprised of the name of the custom type and the name of
 -- the service connected by an underscore and prefixed as a whole word with
 -- __/storage_/__. The stored data is wrapped in 'Maybe' container.
+--
+-- When reading of the custom object fails on the first service run, the
+-- service terminates the worker process by throwing an exception
+-- 'TerminateWorkerProcess' with a corresponding message.
 ngxExportSimpleServiceTypedAsJSON :: Name         -- ^ Name of the service
                                   -> Name         -- ^ Name of the custom type
                                   -> ServiceMode  -- ^ Service mode
diff --git a/ngx-export-tools.cabal b/ngx-export-tools.cabal
--- a/ngx-export-tools.cabal
+++ b/ngx-export-tools.cabal
@@ -1,5 +1,5 @@
 name:                       ngx-export-tools
-version:                    0.3.2.0
+version:                    0.3.3.0
 synopsis:                   Extra tools for Nginx haskell module
 description:                Extra tools for
         <http://github.com/lyokha/nginx-haskell-module Nginx haskell module>.
@@ -20,7 +20,7 @@
                           , template-haskell >= 2.11.0.0
                           , bytestring >= 0.10.0.0
                           , binary >= 0.4
-                          , ngx-export >= 1.5.0
+                          , ngx-export >= 1.6.2
                           , aeson >= 1.0
                           , safe
 
