diff --git a/backend/app/models.py b/backend/app/models.py
index 6f1621b140302ef65b9fc24374cdbc91d070030a..ed982e8fe68d6040230d72585ee262cc3b2d1789 100644
--- a/backend/app/models.py
+++ b/backend/app/models.py
@@ -127,10 +127,14 @@ class Message(Base):
     user_id = Column(Integer, ForeignKey("users.id"))
     session_id = Column(Integer, ForeignKey("sessions.id"))
     created_at = Column(DateTime, default=datetime_aware)
-    reply_to_message_id = Column(Integer, ForeignKey("messages.id"), nullable=True)
+    reply_to_message_id = Column(
+        Integer, ForeignKey("messages.message_id"), nullable=True
+    )
 
     feedbacks = relationship("MessageFeedback", backref="message")
-    replies = relationship("Message", backref="parent_message", remote_side=[id])
+    replies = relationship(
+        "Message", backref="parent_message", remote_side=[message_id]
+    )
 
     def raw(self):
         return [
diff --git a/backend/app/schemas.py b/backend/app/schemas.py
index d13fd2c6dfc13100499017e948c38c1ab1fefef2..b4acc4938abd87a50f74c5546652ac8628cef6f6 100644
--- a/backend/app/schemas.py
+++ b/backend/app/schemas.py
@@ -154,7 +154,7 @@ class Message(BaseModel):
     user_id: int
     session_id: int
     created_at: NaiveDatetime
-    reply_to_message_id: int | None = None
+    reply_to_message_id: str | None = None
     feedbacks: list[MessageFeedback]
 
     class Config:
@@ -184,7 +184,7 @@ class MessageMetadataCreate(BaseModel):
 class MessageCreate(BaseModel):
     message_id: str | None = None
     content: str
-    reply_to_message_id: int | None = None
+    reply_to_message_id: str | None = None
     metadata: list[MessageMetadataCreate]
 
     class Config:
diff --git a/frontend/src/lib/api/sessions.ts b/frontend/src/lib/api/sessions.ts
index 9b861150861266e6cba1ed36cab501dbf28c023e..5e056ac89932e7fa7060a786bbc6a2969e9b03aa 100644
--- a/frontend/src/lib/api/sessions.ts
+++ b/frontend/src/lib/api/sessions.ts
@@ -41,7 +41,7 @@ export async function createMessageAPI(
 	id: number,
 	content: string,
 	metadata: { message: string; date: number }[],
-	replyTo: number | null
+	replyTo: string | null
 ): Promise<any | null> {
 	const response = await fetch(`/api/sessions/${id}/messages`, {
 		method: 'POST',
diff --git a/frontend/src/lib/types/message.ts b/frontend/src/lib/types/message.ts
index 3e7bcd1f4cc2f46aff3e36111caea7d46c4b638b..1c1cc25310078a37829cc99c5139d5404a53ae42 100644
--- a/frontend/src/lib/types/message.ts
+++ b/frontend/src/lib/types/message.ts
@@ -16,7 +16,7 @@ export default class Message {
 	private _edited: boolean = false;
 	private _versions = writable([] as { content: string; date: Date }[]);
 	private _feedbacks = writable([] as Feedback[]);
-	private _replyTo: number;
+	private _replyTo: string;
 
 	public constructor(
 		id: number,
@@ -25,7 +25,7 @@ export default class Message {
 		created_at: Date,
 		user: User,
 		session: Session,
-		replyTo: number
+		replyTo: string
 	) {
 		this._id = id;
 		this._message_id = message_id;
@@ -77,7 +77,7 @@ export default class Message {
 		return `message-${this._message_id}`;
 	}
 
-	get replyTo(): number {
+	get replyTo(): string {
 		return this._replyTo;
 	}
 
@@ -85,7 +85,7 @@ export default class Message {
 		if (this._replyTo == null) return undefined;
 
 		return get(this._session.messages).find(
-			(m) => m instanceof Message && m.id == this._replyTo
+			(m) => m instanceof Message && m.message_id == this._replyTo
 		) as Message | undefined;
 	}
 
diff --git a/frontend/src/lib/types/session.ts b/frontend/src/lib/types/session.ts
index 04cfb8fd773275fea2815161d0898059f0db8ac9..254dce9feba8477403447640ed980c6ecc23f72b 100644
--- a/frontend/src/lib/types/session.ts
+++ b/frontend/src/lib/types/session.ts
@@ -201,7 +201,7 @@ export default class Session {
 		sender: User,
 		content: string,
 		metadata: { message: string; date: number }[],
-		replyTo: number | null
+		replyTo: string | null
 	): Promise<Message | null> {
 		const json = await createMessageAPI(fetch, this.id, content, metadata, replyTo);
 		if (json == null || json.id == null || json.message_id == null) {
diff --git a/frontend/src/routes/sessions/[id]/Writebox.svelte b/frontend/src/routes/sessions/[id]/Writebox.svelte
index 284d1123ef29850105d906ccd97462ab903a7ff5..0c582ac0682838ba7db44d7c6b04731cbbfd77fc 100644
--- a/frontend/src/routes/sessions/[id]/Writebox.svelte
+++ b/frontend/src/routes/sessions/[id]/Writebox.svelte
@@ -37,7 +37,12 @@
 		if (message.length == 0) return;
 
 		try {
-			const m = await session.sendMessage(user, message, [...metadata], replyTo?.id || null);
+			const m = await session.sendMessage(
+				user,
+				message,
+				[...metadata],
+				replyTo?.message_id || null
+			);
 
 			if (m === null) {
 				toastAlert($t('chatbox.sendError'));