diff --git a/hls-call-hierarchy-plugin.cabal b/hls-call-hierarchy-plugin.cabal
--- a/hls-call-hierarchy-plugin.cabal
+++ b/hls-call-hierarchy-plugin.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               hls-call-hierarchy-plugin
-version:            1.0.1.1
+version:            1.0.2.0
 synopsis:           Call hierarchy plugin for Haskell Language Server
 description:
   Please see the README on GitHub at <https://github.com/haskell/haskell-language-server/tree/master/plugins/hls-call-hierarchy-plugin#readme>
@@ -30,9 +30,9 @@
     , containers
     , extra
     , ghc
-    , ghcide                ^>=1.4.1 || ^>= 1.5.0
+    , ghcide                ^>=1.6
     , hiedb
-    , hls-plugin-api        ^>=1.2
+    , hls-plugin-api        ^>=1.2 || ^>= 1.3
     , lens
     , lsp                    >=1.2.0.1
     , sqlite-simple
@@ -55,7 +55,7 @@
     , extra
     , filepath
     , hls-call-hierarchy-plugin
-    , hls-test-utils             >=1.0 && <1.2
+    , hls-test-utils              ^>=1.2
     , lens
     , lsp
     , lsp-test
diff --git a/src/Ide/Plugin/CallHierarchy/Internal.hs b/src/Ide/Plugin/CallHierarchy/Internal.hs
--- a/src/Ide/Plugin/CallHierarchy/Internal.hs
+++ b/src/Ide/Plugin/CallHierarchy/Internal.hs
@@ -234,19 +234,19 @@
 
 mkCallHierarchyCall :: (CallHierarchyItem -> List Range -> a) -> Vertex -> Action (Maybe a)
 mkCallHierarchyCall mk v@Vertex{..} = do
-  let pos = Position (sl - 1) (sc - 1)
+  let pos = Position (fromIntegral $ sl - 1) (fromIntegral $ sc - 1)
       nfp = toNormalizedFilePath' hieSrc
-      range = mkRange (casl - 1) (casc - 1) (cael - 1) (caec - 1)
+      range = mkRange (fromIntegral $ casl - 1) (fromIntegral $ casc - 1) (fromIntegral $ cael - 1) (fromIntegral $ caec - 1)
 
   prepareCallHierarchyItem nfp pos >>=
     \case
       Just [item] -> pure $ Just $ mk item (List [range])
       _           -> do
-        ShakeExtras{hiedb} <- getShakeExtras
-        liftIO (Q.getSymbolPosition hiedb v) >>=
+        ShakeExtras{withHieDb} <- getShakeExtras
+        liftIO (withHieDb (`Q.getSymbolPosition` v)) >>=
           \case
             (x:_) ->
-              prepareCallHierarchyItem nfp (Position (psl x - 1) (psc x - 1)) >>=
+              prepareCallHierarchyItem nfp (Position (fromIntegral $ psl x - 1) (fromIntegral $ psc x - 1)) >>=
                 \case
                   Just [item] -> pure $ Just $ mk item (List [range])
                   _           -> pure Nothing
@@ -263,12 +263,12 @@
   | Just nfp <- uriToNormalizedFilePath $ toNormalizedUri uri = do
     refreshHieDb
 
-    ShakeExtras{hiedb} <- getShakeExtras
+    ShakeExtras{withHieDb} <- getShakeExtras
     maySymbol <- getSymbol nfp
     case maySymbol of
       Nothing -> error "CallHierarchy.Impossible"
       Just symbol -> do
-        vs <- liftIO $ queryFunc hiedb symbol
+        vs <- liftIO $ withHieDb (`queryFunc` symbol)
         items <- Just . catMaybes <$> mapM makeFunc vs
         pure $ merge <$> items
   | otherwise = pure Nothing
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -528,7 +528,7 @@
 testDataDir = "test" </> "testdata"
 
 mkPrepareCallHierarchyParam :: TextDocumentIdentifier -> Int -> Int -> CallHierarchyPrepareParams
-mkPrepareCallHierarchyParam doc x y = CallHierarchyPrepareParams doc (Position x y) Nothing
+mkPrepareCallHierarchyParam doc x y = CallHierarchyPrepareParams doc (Position (fromIntegral x) (fromIntegral y)) Nothing
 
 mkIncomingCallsParam :: CallHierarchyItem -> CallHierarchyIncomingCallsParams
 mkIncomingCallsParam = CallHierarchyIncomingCallsParams Nothing Nothing
