diff --git a/antiope-s3.cabal b/antiope-s3.cabal
--- a/antiope-s3.cabal
+++ b/antiope-s3.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.2
 
 name:               antiope-s3
-version:            7.1.2
+version:            7.2.0
 synopsis:           Please see the README on Github at <https://github.com/arbor/antiope#readme>
 description:        Please see the README on Github at <https://github.com/arbor/antiope#readme>.
 category:           Services
diff --git a/src/Antiope/S3/Messages.hs b/src/Antiope/S3/Messages.hs
--- a/src/Antiope/S3/Messages.hs
+++ b/src/Antiope/S3/Messages.hs
@@ -10,7 +10,7 @@
 
 import Antiope.Messages
 import Antiope.S3            (BucketName (..), ETag (..), ObjectKey (..))
-import Control.Lens          (each, to, (^..), _Just)
+import Control.Lens          (coerced, each, (^.))
 import Data.Aeson            as Aeson
 import Data.Int              (Int64)
 import Data.Text             (Text)
@@ -23,15 +23,14 @@
 import qualified Data.Text.Encoding as T
 import qualified Network.URI        as URI
 
+
 messageToS3Uri :: S3Message -> Types.S3Uri
 messageToS3Uri msg = Types.S3Uri (bucket msg) (key msg)
 
 fromSnsRecords :: Text -> [S3Message]
 fromSnsRecords msg =
   Aeson.decodeStrict' @(WithEncoded "Message" (With "Records" [S3Message])) (T.encodeUtf8 msg)
-    ^.. _Just
-    . to fromWith2
-    . each
+    ^. each . coerced
 
 data EventName = EventName
   { eventType :: !Text
