diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,9 @@
-## [_Unreleased_](https://github.com/freckle/freckle-app/compare/freckle-app-v1.27.0.2...main)
+## [_Unreleased_](https://github.com/freckle/freckle-app/compare/freckle-app-v1.27.0.3...main)
+
+## [v1.27.0.3](https://github.com/freckle/freckle-app/compare/freckle-app-v1.27.0.2...freckle-app-v1.27.0.3)
+
+- Require `bugsnag >= 1.2.0.5`.
+- Drop support for Stackage LTS 20.
 
 ## [v1.27.0.2](https://github.com/freckle/freckle-app/compare/freckle-app-v1.27.0.1...freckle-app-v1.27.0.2)
 
diff --git a/freckle-app.cabal b/freckle-app.cabal
--- a/freckle-app.cabal
+++ b/freckle-app.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.18
 name:               freckle-app
-version:            1.27.0.2
+version:            1.27.0.3
 license:            MIT
 license-file:       LICENSE
 maintainer:         Freckle Education
@@ -71,23 +71,23 @@
         Blammo-wai >=0.0.0.2,
         Glob >=0.10.2,
         HUnit >=1.6.2.0,
-        MonadRandom >=0.5.3,
+        MonadRandom >=0.6,
         QuickCheck >=2.14.3,
-        aeson >=2.0.3.0,
-        autodocodec >=0.2.0.3,
+        aeson >=2.1.2.1,
+        autodocodec >=0.2.2.0,
         autodocodec-openapi3 >=0.2.1.1,
-        base >=4.16.4.0 && <5,
+        base >=4.17.2.1 && <5,
         bcp47 >=0.2.0.6,
-        bugsnag >=1.1.0.0,
-        bytestring >=0.11.4.0,
+        bugsnag >=1.2.0.5,
+        bytestring >=0.11.5.3,
         case-insensitive >=1.2.1.0,
         cassava >=0.5.3.0,
         conduit >=1.3.5,
         conduit-extra >=1.3.6,
-        containers >=0.6.5.1,
+        containers >=0.6.7,
         cookie >=0.4.6,
         doctest >=0.20.1,
-        exceptions >=0.10.4,
+        exceptions >=0.10.5,
         faktory >=1.1.2.4,
         freckle-env >=0.0.1.2,
         freckle-exception >=0.0.0.0,
@@ -103,39 +103,39 @@
         hspec-core >=2.8.1,
         hspec-expectations-lifted >=0.10.0,
         hspec-junit-formatter >=1.1.1.0,
-        http-client >=0.7.13.1,
-        http-types >=0.12.3,
+        http-client >=0.7.15,
+        http-types >=0.12.4,
         immortal >=0.3,
-        lens >=5.1.1,
+        lens >=5.2.3,
         monad-control >=1.0.3.1,
         monad-validate >=1.3.0.0,
         mtl >=2.2.2,
-        nonempty-containers >=0.3.4.4,
-        openapi3 >=3.2.3,
+        nonempty-containers >=0.3.4.5,
+        openapi3 >=3.2.4,
         path-pieces >=0.2.1,
-        persistent >=2.14.0.1,
-        persistent-postgresql >=2.13.5.2,
+        persistent >=2.14.6.0,
+        persistent-postgresql >=2.13.6.1,
         persistent-sql-lifted >=0.1.0.0,
-        postgresql-simple >=0.6.4,
-        primitive >=0.7.3.0,
+        postgresql-simple >=0.6.5.1,
+        primitive >=0.8.0.0,
         resource-pool >=0.4.0.0,
         resourcet >=1.2.6,
         scientist >=0.0.0.0,
         semigroupoids >=5.3.7,
         servant-server >=0.19.2,
-        template-haskell >=2.18.0.0,
-        text >=1.2.5.0,
+        template-haskell >=2.19.0.0,
+        text >=2.0.2,
         transformers >=0.5.6.2,
         transformers-base >=0.4.6,
-        typed-process >=0.2.11.0,
+        typed-process >=0.2.11.1,
         unliftio >=0.2.25.0,
         unordered-containers >=0.2.19.1,
-        vector >=0.12.3.1,
-        wai >=3.2.3,
+        vector >=0.13.1.0,
+        wai >=3.2.4,
         wai-extra >=3.1.13.0,
-        yaml >=0.11.11.1,
-        yesod-core >=1.6.24.2,
-        yesod-test >=1.6.15
+        yaml >=0.11.11.2,
+        yesod-core >=1.6.25.1,
+        yesod-test >=1.6.16
 
     if impl(ghc >=9.8)
         ghc-options:
@@ -161,7 +161,7 @@
         -Wno-safe -Wno-unsafe
 
     build-depends:
-        base >=4.16.4.0 && <5,
+        base >=4.17.2.1 && <5,
         freckle-app
 
     if impl(ghc >=9.8)
@@ -202,11 +202,11 @@
     build-depends:
         Blammo >=2.1.0.0,
         QuickCheck >=2.14.3,
-        aeson >=2.0.3.0,
-        async >=2.2.4,
-        base >=4.16.4.0 && <5,
-        bugsnag >=1.1.0.0,
-        bytestring >=0.11.4.0,
+        aeson >=2.1.2.1,
+        async >=2.2.5,
+        base >=4.17.2.1 && <5,
+        bugsnag >=1.2.0.5,
+        bytestring >=0.11.5.3,
         cassava >=0.5.3.0,
         conduit >=1.3.5,
         freckle-app,
@@ -214,15 +214,15 @@
         freckle-stats >=0.0.0.0,
         hs-opentelemetry-api >=0.1.0.0,
         hspec >=2.10.10,
-        http-types >=0.12.3,
+        http-types >=0.12.4,
         monad-validate >=1.3.0.0,
-        nonempty-containers >=0.3.4.4,
+        nonempty-containers >=0.3.4.5,
         path-pieces >=0.2.1,
-        persistent >=2.14.0.1,
-        postgresql-simple >=0.6.4,
+        persistent >=2.14.6.0,
+        postgresql-simple >=0.6.5.1,
         servant-server >=0.19.2,
-        vector >=0.12.3.1,
-        wai >=3.2.3,
+        vector >=0.13.1.0,
+        wai >=3.2.4,
         wai-extra >=3.1.13.0
 
     if impl(ghc >=9.8)
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: freckle-app
-version: 1.27.0.2
+version: 1.27.0.3
 
 maintainer: Freckle Education
 category: Utils
@@ -66,7 +66,7 @@
     - autodocodec-openapi3
     - aeson
     - bcp47
-    - bugsnag >= 1.1.0.0 # Network.Bugsnag.MetaData
+    - bugsnag >= 1.2.0.5 # Network.Bugsnag.MetaData
     - bytestring
     - case-insensitive
     - cassava
