diff --git a/indexedDb/implementation.go b/indexedDb/implementation.go
index 2763d924372e37745035f51116b8a869a1b1e2ae..3e42108e2de0dc9d8ba5c8dfff7e6b1143d2bb8e 100644
--- a/indexedDb/implementation.go
+++ b/indexedDb/implementation.go
@@ -12,6 +12,7 @@ package indexedDb
 
 import (
 	"context"
+	"encoding/base64"
 	"encoding/json"
 	"github.com/hack-pad/go-indexeddb/idb"
 	"github.com/pkg/errors"
@@ -193,12 +194,26 @@ func (w *wasmModel) ReceiveReaction(channelID *id.ID, messageID cryptoChannel.Me
 func (w *wasmModel) UpdateSentStatus(messageID cryptoChannel.MessageID,
 	status channels.SentStatus) {
 	parentErr := errors.New("failed to UpdateSentStatus")
-	newMessage := &Message{
-		Id:     messageID.Bytes(),
-		Status: uint8(status),
+
+	// Convert messageID to the key generated by json.Marshal
+	key := js.ValueOf(base64.StdEncoding.EncodeToString(messageID[:]))
+
+	// Use the key to get the existing Message
+	currentMsg, err := w.get(messageStoreName, key)
+	if err != nil {
+		return
+	}
+
+	// Extract the existing Message and update the Status
+	newMessage := &Message{}
+	err = json.Unmarshal([]byte(currentMsg), newMessage)
+	if err != nil {
+		return
 	}
+	newMessage.Status = uint8(status)
 
-	err := w.receiveHelper(newMessage)
+	// Store the updated Message
+	err = w.receiveHelper(newMessage)
 	if err != nil {
 		jww.ERROR.Printf("%+v", errors.Wrap(parentErr, err.Error()))
 	}
@@ -263,6 +278,44 @@ func (w *wasmModel) receiveHelper(newMessage *Message) error {
 	return nil
 }
 
+// get is a generic private helper for getting values from the given [idb.ObjectStore].
+func (w *wasmModel) get(objectStoreName string, key js.Value) (string, error) {
+	parentErr := errors.Errorf("failed to get %s/%s", objectStoreName, key)
+
+	// Prepare the Transaction
+	txn, err := w.db.Transaction(idb.TransactionReadOnly, objectStoreName)
+	if err != nil {
+		return "", errors.WithMessagef(parentErr,
+			"Unable to create Transaction: %+v", err)
+	}
+	store, err := txn.ObjectStore(objectStoreName)
+	if err != nil {
+		return "", errors.WithMessagef(parentErr,
+			"Unable to get ObjectStore: %+v", err)
+	}
+
+	// Perform the operation
+	getRequest, err := store.Get(key)
+	if err != nil {
+		return "", errors.WithMessagef(parentErr,
+			"Unable to Get from ObjectStore: %+v", err)
+	}
+
+	// Wait for the operation to return
+	ctx, cancel := newContext()
+	resultObj, err := getRequest.Await(ctx)
+	cancel()
+	if err != nil {
+		return "", errors.WithMessagef(parentErr,
+			"Unable to get from ObjectStore: %+v", err)
+	}
+
+	// Process result into string
+	resultStr := utils.JsToJson(resultObj)
+	jww.DEBUG.Printf("Got from %s/%s: %s", objectStoreName, key, resultStr)
+	return resultStr, nil
+}
+
 // dump given [idb.ObjectStore] contents to string slice for debugging purposes
 func (w *wasmModel) dump(objectStoreName string) ([]string, error) {
 	parentErr := errors.Errorf("failed to dump %s", objectStoreName)