diff --git a/src/components/navigation/left/common.ts b/src/components/navigation/left/common.ts
index 208f795036ba2e4caf8d951fb4d87b04cf771674..12d8f9b714771f3193cf1b1505e8004381d8b063 100644
--- a/src/components/navigation/left/common.ts
+++ b/src/components/navigation/left/common.ts
@@ -25,9 +25,10 @@ export function useUnreads({ channel, unreads, dispatcher }: UnreadProps, contex
                     dispatcher({
                         type: "UNREADS_MARK_READ",
                         channel: channel._id,
-                        message,
-                        request: true
+                        message
                     });
+                    
+                    ctx.client.req('PUT', `/channels/${channel._id}/ack/${message}` as '/channels/id/ack/id');
                 }
             }
         }
diff --git a/src/context/revoltjs/events.ts b/src/context/revoltjs/events.ts
index fea22e7f2a6ceac8954106a3337b26d05a18c0fe..b6fba620f69331582f8ce705b5c22435c536b02f 100644
--- a/src/context/revoltjs/events.ts
+++ b/src/context/revoltjs/events.ts
@@ -62,8 +62,7 @@ export function registerEvents({
                     dispatcher({
                         type: "UNREADS_MARK_READ",
                         channel: packet.id,
-                        message: packet.message_id,
-                        request: false
+                        message: packet.message_id
                     });
                     break;
                 }
diff --git a/src/lib/ContextMenus.tsx b/src/lib/ContextMenus.tsx
index 80797e256b1724acb8eb6a7280b0a4b21a34bb4c..73e54033e9945802cc63e1b4e916c3069ef1b9d4 100644
--- a/src/lib/ContextMenus.tsx
+++ b/src/lib/ContextMenus.tsx
@@ -91,13 +91,18 @@ function ContextMenus(props: WithDispatcher) {
                     writeClipboard(document.getSelection()?.toString() ?? '');
                     break;
                 case "mark_as_read":
-                    if (data.channel.channel_type === 'SavedMessages') return;
-                    props.dispatcher({
-                        type: "UNREADS_MARK_READ",
-                        channel: data.channel._id,
-                        message: data.channel.channel_type === 'TextChannel' ? data.channel.last_message : data.channel.last_message._id,
-                        request: true
-                    });
+                    {
+                        if (data.channel.channel_type === 'SavedMessages') return;
+
+                        let message = data.channel.channel_type === 'TextChannel' ? data.channel.last_message : data.channel.last_message._id;
+                        props.dispatcher({
+                            type: "UNREADS_MARK_READ",
+                            channel: data.channel._id,
+                            message
+                        });
+
+                        client.req('PUT', `/channels/${data.channel._id}/ack/${message}` as '/channels/id/ack/id');
+                    }
                     break;
 
                 case "retry_message":
diff --git a/src/redux/reducers/unreads.ts b/src/redux/reducers/unreads.ts
index f7f640a63b310e6b9a867f55255fb00040a3127a..290afdcbd3a2ab991f708df24d252657227dcbef 100644
--- a/src/redux/reducers/unreads.ts
+++ b/src/redux/reducers/unreads.ts
@@ -10,7 +10,6 @@ export type UnreadsAction =
           type: "UNREADS_MARK_READ";
           channel: string;
           message: string;
-          request: boolean;
       }
     | {
           type: "UNREADS_SET";
@@ -28,10 +27,6 @@ export type UnreadsAction =
 export function unreads(state = {} as Unreads, action: UnreadsAction): Unreads {
     switch (action.type) {
         case "UNREADS_MARK_READ":
-            if (action.request) {
-                // client.req('PUT', `/channels/${action.channel}/ack/${action.message}` as '/channels/id/ack/id');
-            }
-
             return {
                 ...state,
                 [action.channel]: {