diff --git a/src/server/api/endpoints/admin/emoji/copy.ts b/src/server/api/endpoints/admin/emoji/copy.ts
index 1a784f4061..72c2b014a4 100644
--- a/src/server/api/endpoints/admin/emoji/copy.ts
+++ b/src/server/api/endpoints/admin/emoji/copy.ts
@@ -7,6 +7,7 @@ import { ApiError } from '../../../error';
 import { DriveFile } from '../../../../../models/entities/drive-file';
 import { ID } from '@/misc/cafy-id';
 import uploadFromUrl from '../../../../../services/drive/upload-from-url';
+import { publishBroadcastStream } from '@/services/stream';
 
 export const meta = {
 	tags: ['admin'],
@@ -57,7 +58,7 @@ export default define(meta, async (ps, me) => {
 		throw new ApiError();
 	}
 
-	const copied = await Emojis.save({
+	const copied = await Emojis.insert({
 		id: genId(),
 		updatedAt: new Date(),
 		name: emoji.name,
@@ -66,10 +67,14 @@ export default define(meta, async (ps, me) => {
 		url: driveFile.url,
 		type: driveFile.type,
 		fileId: driveFile.id,
-	});
+	}).then(x => Emojis.findOneOrFail(x.identifiers[0]));
 
 	await getConnection().queryResultCache!.remove(['meta_emojis']);
 
+	publishBroadcastStream('emojiAdded', {
+		emoji: await Emojis.pack(copied.id)
+	});
+
 	return {
 		id: copied.id
 	};