diff --git a/aws-lambda-haskell-runtime.cabal b/aws-lambda-haskell-runtime.cabal
--- a/aws-lambda-haskell-runtime.cabal
+++ b/aws-lambda-haskell-runtime.cabal
@@ -7,7 +7,7 @@
 -- hash: c833537a67bfa0d976f4297649380558f7db943dcac5a1b180e2ee2401abb3f7
 
 name:           aws-lambda-haskell-runtime
-version:        3.0.3
+version:        3.0.4
 synopsis:       Haskell runtime for AWS Lambda
 description:    Please see the README on GitHub at <https://github.com/theam/aws-lambda-haskell-runtime#readme>
 category:       AWS
diff --git a/src/Aws/Lambda/Meta/Discover.hs b/src/Aws/Lambda/Meta/Discover.hs
--- a/src/Aws/Lambda/Meta/Discover.hs
+++ b/src/Aws/Lambda/Meta/Discover.hs
@@ -55,7 +55,7 @@
   & fmap (Text.pack . toFilePath)
  where
   changeExtensionToHandler file =
-    setFileExtension ".handler" file
+    replaceExtension ".handler" file
     & Maybe.fromJust  -- The path will be always parsable, as we just replace the extension
 
 containsHandler :: Path Rel File -> IO Bool
diff --git a/src/Aws/Lambda/Runtime/ApiGatewayInfo.hs b/src/Aws/Lambda/Runtime/ApiGatewayInfo.hs
--- a/src/Aws/Lambda/Runtime/ApiGatewayInfo.hs
+++ b/src/Aws/Lambda/Runtime/ApiGatewayInfo.hs
@@ -30,7 +30,7 @@
   { apiGatewayRequestResource              :: !Text
   , apiGatewayRequestPath                  :: !Text
   , apiGatewayRequestHttpMethod            :: !Text
-  , apiGatewayRequestHeaders               :: !(HashMap Text Text)
+  , apiGatewayRequestHeaders               :: !(Maybe (HashMap Text Text))
   , apiGatewayRequestQueryStringParameters :: !(Maybe (HashMap Text Text))
   , apiGatewayRequestPathParameters        :: !(Maybe (HashMap Text Text))
   , apiGatewayRequestStageVariables        :: !(Maybe (HashMap Text Text))
