diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,2 @@
-import Distribution.Simple
+import           Distribution.Simple
 main = defaultMain
diff --git a/mu-servant-server.cabal b/mu-servant-server.cabal
--- a/mu-servant-server.cabal
+++ b/mu-servant-server.cabal
@@ -1,5 +1,5 @@
 name:               mu-servant-server
-version:            0.4.0.0
+version:            0.5.0.0
 synopsis:           Servant servers for Mu definitions
 description:
   With @mu-servant-server@ you can easily build Servant servers for mu-haskell!
@@ -23,21 +23,21 @@
 library
   exposed-modules:  Mu.Servant.Server
   build-depends:
-      aeson           >=1.4   && <2
-    , async           >=2.2   && < 3
-    , base            >=4.12  && <5
-    , conduit         >=1.3.2 && <2
-    , generic-aeson   >=0.2   && <0.3
-    , ghc-prim        >=0.5   && <0.7
-    , mtl             >=2.2   && <3
-    , mu-rpc          ==0.4.*
-    , mu-schema       ==0.3.*
-    , servant         >=0.16  && <0.19
-    , servant-server  >=0.16  && <0.19
-    , servant-swagger >=1.1.7 && <2
-    , stm             >=2.5   && <3
-    , swagger2        >=2.5   && <3
-    , utf8-string     >=1     && <2
+      aeson            >=1.4   && <2
+    , async            >=2.2   && <3
+    , base             >=4.12  && <5
+    , conduit          >=1.3.2 && <2
+    , generic-aeson    >=0.2   && <0.3
+    , ghc-prim         >=0.5   && <0.7
+    , mtl              >=2.2   && <3
+    , mu-rpc           >=0.5   && <0.6
+    , mu-schema        >=0.3   && <0.4
+    , servant          >=0.16  && <0.19
+    , servant-server   >=0.16  && <0.19
+    , servant-swagger  >=1.1.7 && <2
+    , stm              >=2.5   && <3
+    , swagger2         >=2.5   && <3
+    , utf8-string      >=1     && <2
 
   hs-source-dirs:   src
   default-language: Haskell2010
@@ -46,15 +46,15 @@
 executable servant-example-server
   main-is:          ExampleServer.hs
   build-depends:
-      aeson           >=1.4   && <2
-    , base            >=4.12  && <5
-    , conduit         >=1.3.2 && <2
-    , mu-rpc          ==0.4.*
-    , mu-schema       ==0.3.*
+      aeson              >=1.4   && <2
+    , base               >=4.12  && <5
+    , conduit            >=1.3.2 && <2
+    , mu-rpc             >=0.5   && <0.6
+    , mu-schema          >=0.3   && <0.4
     , mu-servant-server
-    , servant-server  >=0.16  && <0.19
-    , text            >=1.2   && <2
-    , warp            >=3.3   && <4
+    , servant-server     >=0.16  && <0.19
+    , text               >=1.2   && <2
+    , warp               >=3.3   && <4
 
   hs-source-dirs:   exe
   default-language: Haskell2010
diff --git a/src/Mu/Servant/Server.hs b/src/Mu/Servant/Server.hs
--- a/src/Mu/Servant/Server.hs
+++ b/src/Mu/Servant/Server.hs
@@ -47,10 +47,10 @@
 import           Data.Conduit.Internal     (ConduitT (..), Pipe (..))
 import           Data.Kind
 import           Data.Swagger              (Swagger, ToSchema (..))
-import           Generics.Generic.Aeson
 import           GHC.Generics
 import           GHC.TypeLits
 import           GHC.Types                 (Any)
+import           Generics.Generic.Aeson
 import           Mu.Rpc
 import           Mu.Rpc.Annotations
 import           Mu.Schema
@@ -170,9 +170,15 @@
   type
     ServicesAPI pkg ('Service sname methods ': rest) (hs ': hss) =
       MethodsAPI pkg sname methods hs :<|> ServicesAPI pkg rest hss
-  servantServiceHandlers f pkgP (svr :<&>: rest) =
+  servantServiceHandlers f pkgP (ProperSvc svr :<&>: rest) =
     servantMethodHandlers f pkgP (Proxy @sname) svr
       :<|> servantServiceHandlers f pkgP rest
+
+instance (TypeError ('Text "unions are not supported by Servant servers"))
+         => ServantServiceHandlers pkg m chn ('OneOf sname methods ': rest) hs where
+  type ServicesAPI pkg ('OneOf sname methods ': rest) hs =
+    TypeError ('Text "unions are not supported by Servant servers")
+  servantServiceHandlers _ = error "unions are not supported by Servant servers"
 
 class
   ServantMethodHandlers
