diff --git a/protos/SignalService.proto b/protos/SignalService.proto
index 4fb3db885..5caffd649 100644
--- a/protos/SignalService.proto
+++ b/protos/SignalService.proto
@@ -37,9 +37,7 @@ message Unsend {
 
 message MessageRequestResponse {
   // @required
-  required bytes   publicKey         = 1; // The public key of the contact that was approved
-  // @required
-  required bool    isApproved        = 2;
+  required bool isApproved = 1;
 }
 
 message Content {
diff --git a/ts/models/conversation.ts b/ts/models/conversation.ts
index b10a5e63d..91dc3a5fe 100644
--- a/ts/models/conversation.ts
+++ b/ts/models/conversation.ts
@@ -656,6 +656,13 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
         // void forceSyncConfigurationNowIfNeeded();
       }
 
+      // TODO: remove once dev-tested
+      // if (chatMessageParams.body?.includes('unapprove')) {
+      //   await this.setIsApproved(false);
+      //   await this.setDidApproveMe(false);
+      //   // void forceSyncConfigurationNowIfNeeded();
+      // }
+
       if (this.isOpenGroupV2()) {
         const chatMessageOpenGroupV2 = new OpenGroupVisibleMessage(chatMessageParams);
         const roomInfos = this.toOpenGroupV2();
@@ -1198,7 +1205,7 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
     }
   }
 
-  public async setIsApproved(value: boolean, commit: boolean = true) {
+  public async setIsApproved(value: boolean, shouldCommit: boolean = true) {
     if (value !== this.isApproved()) {
       window?.log?.info(`Setting ${this.attributes.profileName} isApproved to:: ${value}`);
       this.set({
@@ -1211,18 +1218,22 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
         void forceSyncConfigurationNowIfNeeded();
       }
 
-      await this.commit();
+      if (shouldCommit) {
+        await this.commit();
+      }
     }
   }
 
-  public async setDidApproveMe(value: boolean, commit: boolean = false) {
+  public async setDidApproveMe(value: boolean, shouldCommit: boolean = true) {
     if (value !== this.didApproveMe()) {
       window?.log?.info(`Setting ${this.attributes.profileName} didApproveMe to:: ${value}`);
       this.set({
         didApproveMe: value,
       });
 
-      await this.commit();
+      if (shouldCommit) {
+        await this.commit();
+      }
     }
   }
 
diff --git a/ts/models/messageType.ts b/ts/models/messageType.ts
index d3c7a8b90..409c19610 100644
--- a/ts/models/messageType.ts
+++ b/ts/models/messageType.ts
@@ -146,7 +146,6 @@ export type PropsForMessageRequestResponse = MessageRequestResponseMsg & {
   receivedAt?: number;
   isUnread: boolean;
   isApproved?: boolean;
-  publicKey?: string;
   source?: string;
 };
 
@@ -196,7 +195,6 @@ export interface MessageAttributesOptionals {
   messageRequestResponse?: {
     /** 1 means approved, 0 means unapproved. */
     isApproved?: number;
-    publicKey?: string;
   };
   unread?: number;
   group?: any;
diff --git a/ts/receiver/configMessage.ts b/ts/receiver/configMessage.ts
index 022c7b229..925a49db0 100644
--- a/ts/receiver/configMessage.ts
+++ b/ts/receiver/configMessage.ts
@@ -158,7 +158,6 @@ const handleContactReceived = async (
             received_at: Date.now(),
             messageRequestResponse: {
               isApproved: 1,
-              publicKey: UserUtils.getOurPubKeyStrFromCache(), // it's a sync therefore the pubkey would be ours
             },
             unread: 1, // 1 means unread
             expireTimer: 0,
diff --git a/ts/receiver/contentMessage.ts b/ts/receiver/contentMessage.ts
index 49a8456b2..ba947ec0b 100644
--- a/ts/receiver/contentMessage.ts
+++ b/ts/receiver/contentMessage.ts
@@ -531,7 +531,7 @@ async function handleMessageRequestResponse(
   envelope: EnvelopePlus,
   messageRequestResponse: SignalService.MessageRequestResponse
 ) {
-  const { isApproved, publicKey } = messageRequestResponse;
+  const { isApproved } = messageRequestResponse;
 
   if (!messageRequestResponse) {
     window?.log?.error('handleMessageRequestResponse: Invalid parameters -- dropping message.');
@@ -539,7 +539,7 @@ async function handleMessageRequestResponse(
     return;
   }
 
-  const convoId = toHex(publicKey);
+  const convoId = envelope.source;
 
   // TODO: commenting out, including in one larger function for now
   // await updateConversationDidApproveMe(toHex(publicKey), isApproved);
@@ -566,7 +566,6 @@ async function handleMessageRequestResponse(
       received_at: Date.now(),
       messageRequestResponse: {
         isApproved: 1,
-        publicKey: convoId,
       },
       unread: 1, // 1 means unread
       expireTimer: 0,
diff --git a/ts/session/messages/outgoing/controlMessage/MessageRequestResponse.ts b/ts/session/messages/outgoing/controlMessage/MessageRequestResponse.ts
index c5b2b3f49..8ebdfdd60 100644
--- a/ts/session/messages/outgoing/controlMessage/MessageRequestResponse.ts
+++ b/ts/session/messages/outgoing/controlMessage/MessageRequestResponse.ts
@@ -1,24 +1,19 @@
 import { SignalService } from '../../../../protobuf';
-import { fromHexToArray } from '../../../utils/String';
 import { ContentMessage } from '../ContentMessage';
 import { MessageParams } from '../Message';
 
 interface MessageRequestResponseParams extends MessageParams {
-  publicKey: string;
   isApproved: boolean;
 }
 
 export class MessageRequestResponse extends ContentMessage {
-  private readonly publicKey: Uint8Array;
   private readonly isApproved: boolean;
 
   constructor(params: MessageRequestResponseParams) {
     super({
       timestamp: params.timestamp,
-      publicKey: params.publicKey,
       isApproved: params.isApproved,
     } as MessageRequestResponseParams);
-    this.publicKey = fromHexToArray(params.publicKey);
     this.isApproved = params.isApproved;
   }
 
@@ -30,7 +25,6 @@ export class MessageRequestResponse extends ContentMessage {
 
   public messageRequestResponseProto(): SignalService.MessageRequestResponse {
     return new SignalService.MessageRequestResponse({
-      publicKey: this.publicKey,
       isApproved: this.isApproved,
     });
   }