diff --git a/implicit-hie-cradle.cabal b/implicit-hie-cradle.cabal
--- a/implicit-hie-cradle.cabal
+++ b/implicit-hie-cradle.cabal
@@ -7,7 +7,7 @@
 -- hash: 5c092074b2128d5593e67e2ace6e214ab27a89b73a7a71a71b212a4b34868b86
 
 name:               implicit-hie-cradle
-version:            0.3.0.5
+version:            0.4.0.0
 description:        Auto generate a stack or cabal multi component cradles
 category:           Development, Tools, Hie, HLS
 synopsis:           Auto generate hie-bios cradles
diff --git a/src/Hie/Implicit/Cradle.hs b/src/Hie/Implicit/Cradle.hs
--- a/src/Hie/Implicit/Cradle.hs
+++ b/src/Hie/Implicit/Cradle.hs
@@ -14,6 +14,7 @@
 import Control.Applicative ((<|>))
 import Control.Exception (handleJust)
 import Control.Monad
+import Control.Monad.Extra (ifM)
 import Control.Monad.IO.Class
 import Control.Monad.Trans.Maybe
 import Data.Maybe
@@ -27,6 +28,7 @@
 import System.Directory hiding (findFile)
 import System.FilePath
 import System.IO.Error (isPermissionError)
+import System.Process (readProcess)
 
 -- | Given root\/foo\/bar.hs, load an implicit cradle
 loadImplicitHieCradle :: FilePath -> IO (Cradle a)
@@ -64,7 +66,7 @@
       c <- cn <$> readPkgs cc gp p
       pure (c, p)
     cabal :: FilePath -> MaybeT IO (CradleType a, FilePath)
-    cabal = build (CabalMulti mempty) cabalComponent' cabalPkgs
+    cabal = ifM ((>= "3.4") <$> liftIO cabalVersion) (pure (Cabal mempty, mempty)) . build (CabalMulti mempty) cabalComponent' cabalPkgs
     stack :: FilePath -> MaybeT IO (CradleType a, FilePath)
     stack = build (StackMulti mempty) stackComponent' stackYamlPkgs
     components f (Package n cs) = map (f n) cs
@@ -157,3 +159,6 @@
 
 biosWorkDir :: FilePath -> MaybeT IO FilePath
 biosWorkDir = findFileUpwards (".hie-bios" ==)
+
+cabalVersion :: IO String
+cabalVersion = (!! 2) . words <$> readProcess "cabal" ["--version"] ""
