diff --git a/morpheus-graphql-client.cabal b/morpheus-graphql-client.cabal
--- a/morpheus-graphql-client.cabal
+++ b/morpheus-graphql-client.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.35.0.
+-- This file has been generated from package.yaml by hpack version 0.36.0.
 --
 -- see: https://github.com/sol/hpack
 
 name:           morpheus-graphql-client
-version:        0.27.3
+version:        0.28.0
 synopsis:       Morpheus GraphQL Client
 description:    Build GraphQL APIs with your favorite functional language!
 category:       web, graphql, client
@@ -89,13 +89,13 @@
   build-depends:
       aeson >=1.4.4 && <3.0.0
     , base >=4.7.0 && <5.0.0
-    , bytestring >=0.10.4 && <0.12.0
-    , containers >=0.4.2.1 && <0.7.0
+    , bytestring >=0.10.4 && <0.15.0
+    , containers >=0.4.2.1 && <=0.7
     , file-embed >=0.0.10 && <1.0.0
     , modern-uri >=0.1.0.0 && <1.0.0
-    , morpheus-graphql-code-gen-utils
-    , morpheus-graphql-core >=0.27.0 && <0.28.0
-    , morpheus-graphql-subscriptions
+    , morpheus-graphql-code-gen-utils >=0.28.0 && <0.29.0
+    , morpheus-graphql-core >=0.28.0 && <0.29.0
+    , morpheus-graphql-subscriptions >=0.28.0 && <0.29.0
     , mtl >=2.0.0 && <3.0.0
     , prettyprinter >=1.7.0 && <2.0.0
     , relude >=0.3.0 && <2.0.0
@@ -130,20 +130,20 @@
   build-depends:
       aeson >=1.4.4 && <3.0.0
     , base >=4.7.0 && <5.0.0
-    , bytestring >=0.10.4 && <0.12.0
-    , containers >=0.4.2.1 && <0.7.0
+    , bytestring >=0.10.4 && <0.15.0
+    , containers >=0.4.2.1 && <=0.7
     , directory >=1.0.0 && <2.0.0
     , file-embed >=0.0.10 && <1.0.0
     , modern-uri >=0.1.0.0 && <1.0.0
-    , morpheus-graphql-client
-    , morpheus-graphql-code-gen-utils
-    , morpheus-graphql-core >=0.27.0 && <0.28.0
-    , morpheus-graphql-subscriptions
+    , morpheus-graphql-client >=0.28.0 && <0.29.0
+    , morpheus-graphql-code-gen-utils >=0.28.0 && <0.29.0
+    , morpheus-graphql-core >=0.28.0 && <0.29.0
+    , morpheus-graphql-subscriptions >=0.28.0 && <0.29.0
     , mtl >=2.0.0 && <3.0.0
     , prettyprinter >=1.7.0 && <2.0.0
     , relude >=0.3.0 && <2.0.0
     , req >=3.0.0 && <4.0.0
-    , tasty >=0.1.0 && <1.5.0
+    , tasty >=0.1.0 && <=1.5
     , tasty-hunit >=0.1.0 && <1.0.0
     , template-haskell >=2.0.0 && <3.0.0
     , text >=1.2.3 && <3.0.0
diff --git a/src/Data/Morpheus/Client/CodeGen/Interpreting/Core.hs b/src/Data/Morpheus/Client/CodeGen/Interpreting/Core.hs
--- a/src/Data/Morpheus/Client/CodeGen/Interpreting/Core.hs
+++ b/src/Data/Morpheus/Client/CodeGen/Interpreting/Core.hs
@@ -81,7 +81,12 @@
 import Relude hiding (empty)
 
 clientConfig :: Config
-clientConfig = Config {debug = False, validationMode = WITHOUT_VARIABLES}
+clientConfig =
+  Config
+    { debug = False,
+      introspection = True,
+      validationMode = WITHOUT_VARIABLES
+    }
 
 data LocalContext = LocalContext
   { ctxSchema :: Schema VALID,
diff --git a/src/Data/Morpheus/Client/Fetch/WebSockets.hs b/src/Data/Morpheus/Client/Fetch/WebSockets.hs
--- a/src/Data/Morpheus/Client/Fetch/WebSockets.hs
+++ b/src/Data/Morpheus/Client/Fetch/WebSockets.hs
@@ -24,6 +24,7 @@
 import Data.Morpheus.Client.Fetch.RequestType (Request, RequestType (..), processResponse, toRequest)
 import Data.Morpheus.Client.Fetch.Types (FetchError (..), GQLClientResult)
 import Data.Morpheus.Client.Schema.JSON.Types (JSONResponse (..))
+import Data.Morpheus.Subscriptions (ApolloMessageType (..))
 import Data.Morpheus.Subscriptions.Internal (ApolloSubscription (..))
 import qualified Data.Text as T
 import Network.WebSockets.Client (runClientWith)
@@ -101,19 +102,19 @@
 decodeMessage = (first FetchErrorParseFailure . A.eitherDecode) >=> processMessage
 
 initialMessage :: ApolloSubscription ()
-initialMessage = ApolloSubscription {apolloType = "connection_init", apolloPayload = Nothing, apolloId = Nothing}
+initialMessage = ApolloSubscription {apolloType = GqlConnectionInit, apolloPayload = Nothing, apolloId = Nothing}
 
 encodeRequestMessage :: (RequestType a, A.ToJSON (RequestArgs a)) => Text -> Request a -> ByteString
 encodeRequestMessage uid r =
   A.encode
     ApolloSubscription
       { apolloPayload = Just (toRequest r),
-        apolloType = "start",
+        apolloType = GqlSubscribe,
         apolloId = Just uid
       }
 
 endMessage :: Text -> ApolloSubscription ()
-endMessage uid = ApolloSubscription {apolloType = "stop", apolloPayload = Nothing, apolloId = Just uid}
+endMessage uid = ApolloSubscription {apolloType = GqlComplete, apolloPayload = Nothing, apolloId = Just uid}
 
 endSession :: MonadIO m => Connection -> Text -> m ()
 endSession conn uid = liftIO $ sendTextData conn $ A.encode $ endMessage uid
diff --git a/test/Case/ResponseTypes/Test.hs b/test/Case/ResponseTypes/Test.hs
--- a/test/Case/ResponseTypes/Test.hs
+++ b/test/Case/ResponseTypes/Test.hs
@@ -6,6 +6,7 @@
 {-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE NoImplicitPrelude #-}
 
 module Case.ResponseTypes.Test
