diff --git a/app/controllers/settings/featured_tags_controller.rb b/app/controllers/settings/featured_tags_controller.rb
index cc6ec084381263a9b197366691b9f81402c78952..b3db04a426aa68d6a8c313f8ee2f7ace7d3692e9 100644
--- a/app/controllers/settings/featured_tags_controller.rb
+++ b/app/controllers/settings/featured_tags_controller.rb
@@ -10,8 +10,9 @@ class Settings::FeaturedTagsController < Settings::BaseController
   end
 
   def create
-    if !featured_tag_exists?
-      CreateFeaturedTagService.new.call(current_account, featured_tag_params[:name])
+    @featured_tag = CreateFeaturedTagService.new.call(current_account, featured_tag_params[:name], force: false)
+
+    if @featured_tag.valid?
       redirect_to settings_featured_tags_path
     else
       set_featured_tags
@@ -28,10 +29,6 @@ class Settings::FeaturedTagsController < Settings::BaseController
 
   private
 
-  def featured_tag_exists?
-    current_account.featured_tags.by_name(featured_tag_params[:name]).exists?
-  end
-
   def set_featured_tag
     @featured_tag = current_account.featured_tags.find(params[:id])
   end
diff --git a/app/services/create_featured_tag_service.rb b/app/services/create_featured_tag_service.rb
index c99d16113b694d730d8ab5ffa52029fbed3a4149..3cc59156db41b16c647a6c0ee4c37039c861118e 100644
--- a/app/services/create_featured_tag_service.rb
+++ b/app/services/create_featured_tag_service.rb
@@ -3,14 +3,18 @@
 class CreateFeaturedTagService < BaseService
   include Payloadable
 
-  def call(account, name)
+  def call(account, name, force: true)
     @account = account
 
     FeaturedTag.create!(account: account, name: name).tap do |featured_tag|
       ActivityPub::AccountRawDistributionWorker.perform_async(build_json(featured_tag), account.id) if @account.local?
     end
-  rescue ActiveRecord::RecordNotUnique
-    FeaturedTag.by_name(name).find_by!(account: account)
+  rescue ActiveRecord::RecordNotUnique, ActiveRecord::RecordInvalid => e
+    if force && e.is_a(ActiveRecord::RecordNotUnique)
+      FeaturedTag.by_name(name).find_by!(account: account)
+    else
+      account.featured_tags.new(name: name)
+    end
   end
 
   private