diff --git a/packages/rocketchat-api/server/v1/emoji-custom.js b/packages/rocketchat-api/server/v1/emoji-custom.js
index 94f427511ba59..10ebcb64bb278 100644
--- a/packages/rocketchat-api/server/v1/emoji-custom.js
+++ b/packages/rocketchat-api/server/v1/emoji-custom.js
@@ -16,35 +16,39 @@ RocketChat.API.v1.addRoute('emoji-custom.create', { authRequired: true }, {
 		Meteor.runAsUser(this.userId, () => {
 			const fields = {};
 			const busboy = new Busboy({ headers: this.request.headers });
+			const emojiData = [];
+			let emojiMimetype = '';
 
 			Meteor.wrapAsync((callback) => {
 				busboy.on('file', Meteor.bindEnvironment((fieldname, file, filename, encoding, mimetype) => {
 					if (fieldname !== 'emoji') {
 						return callback(new Meteor.Error('invalid-field'));
 					}
-					const emojiData = [];
+
 					file.on('data', Meteor.bindEnvironment((data) => emojiData.push(data)));
 
 					file.on('end', Meteor.bindEnvironment(() => {
 						const extension = mimetype.split('/')[1];
+						emojiMimetype = mimetype;
 						fields.extension = extension;
-						fields.newFile = true;
-						fields.aliases = fields.aliases || '';
-						try {
-							Meteor.call('insertOrUpdateEmoji', fields);
-							Meteor.call('uploadEmojiCustom', Buffer.concat(emojiData), mimetype, fields);
-							callback();
-						} catch (error) {
-							return callback(error);
-						}
 					}));
 				}));
 				busboy.on('field', (fieldname, val) => {
 					fields[fieldname] = val;
 				});
+				busboy.on('finish', Meteor.bindEnvironment(() => {
+					fields.newFile = true;
+					fields.aliases = fields.aliases || '';
+					try {
+						Meteor.call('insertOrUpdateEmoji', fields);
+						Meteor.call('uploadEmojiCustom', Buffer.concat(emojiData), emojiMimetype, fields);
+						callback();
+					} catch (error) {
+						return callback(error);
+					}
+				}));
 				this.request.pipe(busboy);
 			})();
-
 		});
 	},
 });
diff --git a/tests/end-to-end/ui/11-admin.js b/tests/end-to-end/ui/11-admin.js
index 4fe4746b9f6ef..da7aede7ed9c2 100644
--- a/tests/end-to-end/ui/11-admin.js
+++ b/tests/end-to-end/ui/11-admin.js
@@ -874,6 +874,7 @@ describe('[Administration]', () => {
 				});
 
 				it('it should show the enter key behavior field', () => {
+					browser.scroll(0, 500);
 					admin.accountsSendOnEnter.click();
 					admin.accountsSendOnEnter.isVisible().should.be.true;
 				});