diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for pms-infra-procspawn
 
+## 0.0.5.0 -- 2025-08-17
+
+* Fixed proc-message.
+
 ## 0.0.4.0 -- 2025-07-27
 
 * Fixed resources templates.
diff --git a/pms-infra-procspawn.cabal b/pms-infra-procspawn.cabal
--- a/pms-infra-procspawn.cabal
+++ b/pms-infra-procspawn.cabal
@@ -20,7 +20,7 @@
 -- PVP summary:     +-+------- breaking API changes
 --                  | | +----- non-breaking API additions
 --                  | | | +--- code changes with no API change
-version:            0.0.4.0
+version:            0.0.5.0
 
 -- A short (one-line) description of the package.
 synopsis:           pms-infra-procspawn
diff --git a/src/PMS/Infra/ProcSpawn/DM/Type.hs b/src/PMS/Infra/ProcSpawn/DM/Type.hs
--- a/src/PMS/Infra/ProcSpawn/DM/Type.hs
+++ b/src/PMS/Infra/ProcSpawn/DM/Type.hs
@@ -31,7 +31,6 @@
 data AppData = AppData {
                _processAppData :: STM.TMVar (Maybe ProcData)
              , _lockAppData :: STM.TMVar ()
-             , _jsonrpcAppData :: DM.JsonRpcRequest
              }
 
 makeLenses ''AppData
@@ -43,7 +42,6 @@
   return AppData {
            _processAppData = mgrVar
          , _lockAppData = lock
-         , _jsonrpcAppData = def
          }
 
 -- |
diff --git a/src/PMS/Infra/ProcSpawn/DS/Core.hs b/src/PMS/Infra/ProcSpawn/DS/Core.hs
--- a/src/PMS/Infra/ProcSpawn/DS/Core.hs
+++ b/src/PMS/Infra/ProcSpawn/DS/Core.hs
@@ -465,5 +465,5 @@
       hFlush wHdl
 
       race (DM.expect lockTMVar (readProc pDat) prompts) (CC.threadDelay tout) >>= \case
-        Left res -> toolsCallResponse resQ jsonRpc ExitSuccess (maybe "Nothing" id res) ""
+        Left res -> toolsCallResponse resQ jsonRpc ExitSuccess (maybe "expect running. skip." id res) ""
         Right _  -> toolsCallResponse resQ jsonRpc (ExitFailure 1) "" "timeout occurred."
diff --git a/src/PMS/Infra/ProcSpawn/DS/Utility.hs b/src/PMS/Infra/ProcSpawn/DS/Utility.hs
--- a/src/PMS/Infra/ProcSpawn/DS/Utility.hs
+++ b/src/PMS/Infra/ProcSpawn/DS/Utility.hs
@@ -113,7 +113,10 @@
 --   
 readProc :: ProcData -> IO BS.ByteString
 readProc dat = do
-   let hdl = dat^.rHdlProcData
-   BS.hGetSome hdl 1024
-
-  
+  let hdl = dat^.rHdlProcData
+      timeoutMillis = 5000
+  ready <- hWaitForInput hdl timeoutMillis
+  if ready
+    then BS.hGetSome hdl 1024
+    else E.throwString $ "readProc: timeout waiting for input"
+    
