diff --git a/packages/backend/src/remote/activitypub/renderer/undo.ts b/packages/backend/src/remote/activitypub/renderer/undo.ts
index d28778e22e7c6591a6637c81e2641344837d0bc3..46631df9ea8cf42688e67435e1311e83af4db326 100644
--- a/packages/backend/src/remote/activitypub/renderer/undo.ts
+++ b/packages/backend/src/remote/activitypub/renderer/undo.ts
@@ -3,9 +3,11 @@ import { ILocalUser, User } from '@/models/entities/user.js';
 
 export default (object: any, user: { id: User['id'] }) => {
 	if (object == null) return null;
+	const id = typeof object.id === 'string' && object.id.startsWith(config.url) ? `${object.id}/undo` : undefined;
 
 	return {
 		type: 'Undo',
+		...(id ? { id } : {}),
 		actor: `${config.url}/users/${user.id}`,
 		object,
 		published: new Date().toISOString(),