diff --git a/keyserver/src/creators/account-creator.js b/keyserver/src/creators/account-creator.js
--- a/keyserver/src/creators/account-creator.js
+++ b/keyserver/src/creators/account-creator.js
@@ -1,6 +1,5 @@
 // @flow
 
-import invariant from 'invariant';
 import { getRustAPI } from 'rust-node-addon';
 import bcrypt from 'twin-bcrypt';
 
@@ -175,16 +174,8 @@
       { forceAddMembers: true },
     ),
   ]);
-  const ashoatThreadID = ashoatThreadResult.newThreadInfo
-    ? ashoatThreadResult.newThreadInfo.id
-    : ashoatThreadResult.newThreadID;
-  const privateThreadID = privateThreadResult.newThreadInfo
-    ? privateThreadResult.newThreadInfo.id
-    : privateThreadResult.newThreadID;
-  invariant(
-    ashoatThreadID && privateThreadID,
-    'createThread should return either newThreadInfo or newThreadID',
-  );
+  const ashoatThreadID = ashoatThreadResult.newThreadID;
+  const privateThreadID = privateThreadResult.newThreadID;
 
   let messageTime = Date.now();
   const ashoatMessageDatas = ashoatMessages.map(message => ({
@@ -308,16 +299,8 @@
       { forceAddMembers: true },
     ),
   ]);
-  const ashoatThreadID = ashoatThreadResult.newThreadInfo
-    ? ashoatThreadResult.newThreadInfo.id
-    : ashoatThreadResult.newThreadID;
-  const privateThreadID = privateThreadResult.newThreadInfo
-    ? privateThreadResult.newThreadInfo.id
-    : privateThreadResult.newThreadID;
-  invariant(
-    ashoatThreadID && privateThreadID,
-    'createThread should return either newThreadInfo or newThreadID',
-  );
+  const ashoatThreadID = ashoatThreadResult.newThreadID;
+  const privateThreadID = privateThreadResult.newThreadID;
 
   let messageTime = Date.now();
   const ashoatMessageDatas = ashoatMessages.map(message => ({
diff --git a/keyserver/src/creators/thread-creator.js b/keyserver/src/creators/thread-creator.js
--- a/keyserver/src/creators/thread-creator.js
+++ b/keyserver/src/creators/thread-creator.js
@@ -395,10 +395,13 @@
   }
 
   const changeset = { membershipRows, relationshipChangeset };
-  const { threadInfos, viewerUpdates, userInfos } =
-    await commitMembershipChangeset(viewer, changeset, {
+  const { viewerUpdates, userInfos } = await commitMembershipChangeset(
+    viewer,
+    changeset,
+    {
       updatesForCurrentSession,
-    });
+    },
+  );
 
   const initialMemberAndCreatorIDs = initialMemberIDs
     ? [...initialMemberIDs, viewer.userID]
@@ -482,19 +485,8 @@
     updatesForCurrentSession,
   );
 
-  if (hasMinCodeVersion(viewer.platformDetails, { native: 62 })) {
-    return {
-      newThreadID: id,
-      updatesResult: {
-        newUpdates: viewerUpdates,
-      },
-      userInfos,
-      newMessageInfos,
-    };
-  }
-
   return {
-    newThreadInfo: threadInfos[id],
+    newThreadID: id,
     updatesResult: {
       newUpdates: viewerUpdates,
     },
diff --git a/keyserver/src/responders/thread-responders.js b/keyserver/src/responders/thread-responders.js
--- a/keyserver/src/responders/thread-responders.js
+++ b/keyserver/src/responders/thread-responders.js
@@ -234,9 +234,8 @@
       newUpdates: t.list(serverUpdateInfoValidator),
     }),
     newMessageInfos: t.list(rawMessageInfoValidator),
-    newThreadInfo: t.maybe(rawThreadInfoValidator),
     userInfos: userInfosValidator,
-    newThreadID: t.maybe(tID),
+    newThreadID: tID,
   });
 
 async function threadCreationResponder(
diff --git a/lib/types/thread-types.js b/lib/types/thread-types.js
--- a/lib/types/thread-types.js
+++ b/lib/types/thread-types.js
@@ -364,9 +364,8 @@
     +newUpdates: $ReadOnlyArray<ServerUpdateInfo>,
   },
   +newMessageInfos: $ReadOnlyArray<RawMessageInfo>,
-  +newThreadInfo?: RawThreadInfo,
   +userInfos: UserInfos,
-  +newThreadID?: string,
+  +newThreadID: string,
 };
 export type NewThreadResult = {
   +updatesResult: {