diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
-## [*Unreleased*](https://github.com/frontrowed/faktory_worker_haskell/compare/v1.1.2.0...main)
+## [*Unreleased*](https://github.com/frontrowed/faktory_worker_haskell/compare/v1.1.2.1...main)
 
 None
+
+## [v1.1.2.1](https://github.com/frontrowed/faktory_worker_haskell/compare/v1.1.2.0...v1.1.2.1)
+
+- Support `aeson` 2.x
 
 ## [v1.1.2.0](https://github.com/frontrowed/faktory_worker_haskell/compare/v1.1.1.0...v1.1.2.0)
 
diff --git a/faktory.cabal b/faktory.cabal
--- a/faktory.cabal
+++ b/faktory.cabal
@@ -1,6 +1,6 @@
 cabal-version:   1.18
 name:            faktory
-version:         1.1.2.0
+version:         1.1.2.1
 license:         MIT
 license-file:    LICENSE
 copyright:       2018 Freckle Education
@@ -87,25 +87,25 @@
         -Wno-monomorphism-restriction -Wno-missing-import-lists
 
     build-depends:
-        aeson >=1.5.5.1,
+        aeson >=2.0.2.0,
         aeson-casing >=0.2.0.0,
         base >=4.13 && <5,
-        bytestring >=0.10.12.0,
+        bytestring >=0.10.12.1,
         connection >=0.3.1,
-        cryptonite >=0.27,
+        cryptonite >=0.29,
         errors >=2.3.0,
-        megaparsec >=9.0.1,
-        memory >=0.15.0,
+        megaparsec >=9.2.0,
+        memory >=0.16.0,
         mtl >=2.2.2,
-        network >=3.1.1.1,
-        random >=1.1,
-        safe-exceptions >=0.1.7.1,
+        network >=3.1.2.5,
+        random >=1.2.1,
+        safe-exceptions >=0.1.7.2,
         scanner >=0.3.1,
-        semigroups >=0.19.1,
+        semigroups >=0.19.2,
         text >1.2,
         time >=1.9.3,
         unix >=2.7.2.2,
-        unordered-containers >=0.2.13.0
+        unordered-containers >=0.2.15.0
 
     if impl(ghc >=8.10)
         ghc-options:
@@ -132,10 +132,10 @@
         -Wno-monomorphism-restriction -Wno-missing-import-lists
 
     build-depends:
-        aeson >=1.5.5.1,
+        aeson >=2.0.2.0,
         base >=4.13 && <5,
         faktory -any,
-        safe-exceptions >=0.1.7.1
+        safe-exceptions >=0.1.7.2
 
     if impl(ghc >=8.10)
         ghc-options:
@@ -162,10 +162,10 @@
         -Wno-monomorphism-restriction -Wno-missing-import-lists
 
     build-depends:
-        aeson >=1.5.5.1,
+        aeson >=2.0.2.0,
         base >=4.13 && <5,
         faktory -any,
-        safe-exceptions >=0.1.7.1
+        safe-exceptions >=0.1.7.2
 
     if impl(ghc >=8.10)
         ghc-options:
@@ -202,12 +202,12 @@
         -Wno-monomorphism-restriction -Wno-missing-import-lists -rtsopts
 
     build-depends:
-        aeson >=1.5.5.1,
-        aeson-qq >=0.8.3,
-        async >=2.2.2,
+        aeson >=2.0.2.0,
+        aeson-qq >=0.8.4,
+        async >=2.2.4,
         base >=4.13 && <5,
         faktory -any,
-        hspec >=2.7.8,
+        hspec >=2.8.5,
         mtl >=2.2.2,
         time >=1.9.3
 
@@ -238,7 +238,7 @@
         markdown-unlit
 
     build-depends:
-        aeson >=1.5.5.1,
+        aeson >=2.0.2.0,
         base >=4.13 && <5,
         faktory -any,
         markdown-unlit >=0.5.1
diff --git a/library/Faktory/Job/Custom.hs b/library/Faktory/Job/Custom.hs
--- a/library/Faktory/Job/Custom.hs
+++ b/library/Faktory/Job/Custom.hs
@@ -12,7 +12,6 @@
 import Faktory.Prelude
 
 import Data.Aeson
-import qualified Data.HashMap.Strict as HashMap
 
 newtype Custom = Custom Value
   deriving stock (Eq, Show)
@@ -28,6 +27,5 @@
   Success a -> Right a
 
 instance Semigroup Custom where
-  (Custom (Object a)) <> (Custom (Object b)) =
-    Custom $ Object $ HashMap.union b a
+  (Custom (Object a)) <> (Custom (Object b)) = Custom $ Object $ b <> a
   _ <> b = b
