diff --git a/ipython-kernel.cabal b/ipython-kernel.cabal
--- a/ipython-kernel.cabal
+++ b/ipython-kernel.cabal
@@ -1,5 +1,5 @@
 name:                ipython-kernel
-version:             0.10.2.2
+version:             0.10.3.0
 synopsis:            A library for creating kernels for IPython frontends
 
 description:         ipython-kernel is a library for communicating with frontends for the interactive IPython framework. It is used extensively in IHaskell, the interactive Haskell environment.
diff --git a/src/IHaskell/IPython/Types.hs b/src/IHaskell/IPython/Types.hs
--- a/src/IHaskell/IPython/Types.hs
+++ b/src/IHaskell/IPython/Types.hs
@@ -390,7 +390,7 @@
              |
              -- | An error reply to an execute request
                ExecuteError
-                 { header :: MessageHeader
+                 { header :: MessageHeader              -- ^ Unused field retained for backwards compatibility.
                  , traceback :: [Text]
                  , ename :: Text
                  , evalue :: Text
@@ -573,10 +573,11 @@
                         , "data" .= object (map displayDataToJson o)
                         ]
                     ]
-  toJSON ExecuteError { header = header, traceback = traceback, ename = ename, evalue = evalue } =
+  -- `header` is not a supported field, but removing it would complicate things
+  -- downstream in terms of dependency bounds so we just drop it on the floor
+  toJSON ExecuteError { header = _header, traceback = traceback, ename = ename, evalue = evalue } =
     object
-      [ "header" .= show header
-      , "traceback" .= map toJSON traceback
+      [ "traceback" .= map toJSON traceback
       , "ename" .= ename
       , "evalue" .= evalue
       ]
@@ -728,10 +729,11 @@
                         , "data" .= object (map displayDataToJson o)
                         ]
                     ]
-  toEncoding ExecuteError { header = header, traceback = traceback, ename = ename, evalue = evalue } =
+  -- `header` is not a supported field, but removing it would complicate things
+  -- downstream in terms of dependency bounds so we just drop it on the floor
+  toEncoding ExecuteError { header = _header, traceback = traceback, ename = ename, evalue = evalue } =
     pairs $ mconcat
-      [ "header" .= show header
-      , "traceback" .= map toJSON traceback
+      [ "traceback" .= map toJSON traceback
       , "ename" .= ename
       , "evalue" .= evalue
       ]
