diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+3.2 (2026-09-06)
+
+  * Revered rollback to older Cabal API, was breaking Stackage compatibility
+
+
 3.1 (2026-09-05)
 
   * Redesigned how runtime resources are handled, fixing resource access during
diff --git a/hsinstall.cabal b/hsinstall.cabal
--- a/hsinstall.cabal
+++ b/hsinstall.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.2
 
 name: hsinstall
-version: 3.1
+version: 3.2
 synopsis: Install Haskell software
 description: This is a tool for deploying software projects into directory
   structures suitable for installation on a system. It builds upon the `stack
@@ -101,7 +101,7 @@
   hs-source-dirs:
       src/app
   build-depends:
-      Cabal >=3.10.3 && <4
+      Cabal >=3.14.0.0 && <4
     , exceptions >=0.10.7 && <1
     , formatting >=7.2.0 && <8
     , heredoc >=0.2.0.0 && <0.3
diff --git a/src/app/HSInstall/DeploymentInfo.hs b/src/app/HSInstall/DeploymentInfo.hs
--- a/src/app/HSInstall/DeploymentInfo.hs
+++ b/src/app/HSInstall/DeploymentInfo.hs
@@ -29,6 +29,7 @@
 import Distribution.Simple.PackageDescription (readGenericPackageDescription)
 import Distribution.Types.PackageName (unPackageName)
 import Distribution.Types.Version (Version)
+import Distribution.Utils.Path (makeSymbolicPath)
 import Distribution.Verbosity (normal)
 import System.Directory (getDirectoryContents)
 import System.FilePath ((</>), (<.>))
@@ -58,9 +59,13 @@
 
 
 -- This tool is designed to only be run in the top-level directory of a Haskell
--- package that's being packaged for deployment, so we expect "." to be our cwd
+-- package that's being packaged for deployment.
+cwd :: FilePath
+cwd = "."
+
+
 locateCabalFile :: IO (Maybe FilePath)
-locateCabalFile = find (isSuffixOf ".cabal") <$> getDirectoryContents "."
+locateCabalFile = find (isSuffixOf ".cabal") <$> getDirectoryContents cwd
 
 
 constructDeploymentInfo :: BuildTool -> BuildMode -> IO DeploymentInfo
@@ -68,9 +73,10 @@
   mbCabalFile <- runMaybeT
     $   MaybeT locateCabalFile
     <|> MaybeT (makeCabal buildTool >> locateCabalFile)
+  let path = Just $ makeSymbolicPath cwd
   maybe (throwM NoCabalFiles)
     (fmap (constructDeploymentInfo' buildMode . package . packageDescription)
-      . readGenericPackageDescription normal) mbCabalFile
+      . readGenericPackageDescription normal path . makeSymbolicPath) mbCabalFile
 
 
 constructDeploymentInfo' :: BuildMode -> PackageId -> DeploymentInfo
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -4,5 +4,7 @@
 - '.'
 
 extra-deps:
+- Cabal-3.14.0.0
+- Cabal-syntax-3.14.0.0
 - hslogger-colorfmt-1.0.0
 - optparse-applicative-dex-1.0.1
diff --git a/stack.yaml.lock b/stack.yaml.lock
--- a/stack.yaml.lock
+++ b/stack.yaml.lock
@@ -5,6 +5,20 @@
 
 packages:
 - completed:
+    hackage: Cabal-3.14.0.0@sha256:13d39b2bc652fb4bbd89ccbfabddfa4163dcbe8c6165ec9d18d4f8102fbad320,14137
+    pantry-tree:
+      sha256: 3d14ae8e5c8f2b56f40594b3f9693cd1ebbcbcb34404f3d402e7ab851b53ea32
+      size: 12219
+  original:
+    hackage: Cabal-3.14.0.0
+- completed:
+    hackage: Cabal-syntax-3.14.0.0@sha256:6cd7666c675c29981392d031a9ad402f578234b6195a304c886b84510b0c21cd,7380
+    pantry-tree:
+      sha256: 2aed3c4195554d93ed1e25c4bacdf8eb7f3e006622bbd17a2e27d4bd0de0cd32
+      size: 10977
+  original:
+    hackage: Cabal-syntax-3.14.0.0
+- completed:
     hackage: hslogger-colorfmt-1.0.0@sha256:ec9180c579c73f4aca8c0c9c7fcd4a99f91c9939ab060c78f910d525023a2e40,1312
     pantry-tree:
       sha256: 851f5cda0546bfc4d3463f70e7420adf0c260266a435e7f6191e659e3e4f65e5
