Skip to content

Commit 4348055

Browse files
committed
cardano-rpc: fix serverExceptionToClient for grapesy-1.2.0's ExactException
grapesy changed serverExceptionToClient's field type from SomeException to ExactException (a newtype wrapper) between 1.1.1 and 1.2.0. This repo's own pinned Hackage index-state (2026-08-02) predates that release, so CI still resolves an older grapesy with the old signature; a newer index-state (as used downstream by cardano-node) resolves 1.2.0 and this commit's serverExceptionToClient assignment fails to typecheck. Unwrap via the ExactException pattern before using fromException, as grapesy's own Server.Call/Context modules do internally.
1 parent 4d379fb commit 4348055

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

cardano-rpc/src/Cardano/Rpc/Server.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ import Network.GRPC.Server
5252
import Network.GRPC.Server.Protobuf
5353
import Network.GRPC.Server.Run
5454
import Network.GRPC.Server.StreamType
55+
import Network.GRPC.Util.Exception.Exact (ExactException (..))
5556

5657
-- | gRPC method table for the @Node@ service.
5758
methodsNodeRpc
@@ -185,8 +186,8 @@ runRpcServer tracer rpcConfig networkMagic nodeKernelAccessRef = handleFatalExce
185186

186187
-- Clients must never see internal error detail or call stacks; full detail is
187188
-- still traced server-side by 'topLevelHandler'.
188-
exceptionToClient :: SomeException -> IO (Maybe Text)
189-
exceptionToClient e =
189+
exceptionToClient :: ExactException -> IO (Maybe Text)
190+
exceptionToClient (WrapExactException e) =
190191
pure . Just $ maybe genericErrorMessage renderRpcExceptionForClient $ fromException e
191192
where
192193
genericErrorMessage = "Internal error while processing the request."

0 commit comments

Comments
 (0)