diff --git a/hal.cabal b/hal.cabal
--- a/hal.cabal
+++ b/hal.cabal
@@ -1,13 +1,13 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.31.1.
+-- This file has been generated from package.yaml by hpack version 0.33.0.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 811e290f1780d180d8868adb2a10e2715dc938423a42a8eea7d6c73c821c7a24
+-- hash: 5c6b20d6f7c9980f765b2fe4df347b6539223f3f8abaa4d30613db754514df31
 
 name:           hal
-version:        0.3.0
+version:        0.3.1
 synopsis:       A runtime environment for Haskell applications running on AWS Lambda.
 description:    This library uniquely supports different types of AWS Lambda Handlers for your
                 needs/comfort with advanced Haskell. Instead of exposing a single function
diff --git a/src/AWS/Lambda/RuntimeClient.hs b/src/AWS/Lambda/RuntimeClient.hs
--- a/src/AWS/Lambda/RuntimeClient.hs
+++ b/src/AWS/Lambda/RuntimeClient.hs
@@ -31,7 +31,7 @@
                                             setRequestCheckStatus,
                                             setRequestHeader, setRequestMethod,
                                             setRequestPath)
-import           Network.HTTP.Types.Status (status413, statusIsSuccessful)
+import           Network.HTTP.Types.Status (status403, status413, statusIsSuccessful)
 import           System.Environment        (getEnv)
 
 -- | Lambda runtime error that we pass back to AWS
@@ -110,9 +110,16 @@
 runtimeClientRetryTry' 1 f = try f
 runtimeClientRetryTry' i f = do
   resOrEx <- try f
+  let retry = threadDelay 500 >> runtimeClientRetryTry' (i - 1) f
   case resOrEx of
-    Left (_ :: HttpException) -> threadDelay 500 >> runtimeClientRetryTry' (i - 1) f
-    Right res -> return $ Right res
+    Left (_ :: HttpException) -> retry
+    Right res ->
+      -- TODO: Explore this further.
+      -- Before ~July 22nd 2020 it seemed that if a next event request reached
+      -- the runtime before a new event was available that there would be a
+      -- network error.  After it appears that a 403 is returned.
+      if getResponseStatus res == status403 then retry
+      else return $ Right res
 
 runtimeClientRetryTry :: IO (Response a) -> IO (Either HttpException (Response a))
 runtimeClientRetryTry = runtimeClientRetryTry' 3
