diff --git a/lib/topic_query.rb b/lib/topic_query.rb
index 6e299e73ba6..39495cb2f94 100644
--- a/lib/topic_query.rb
+++ b/lib/topic_query.rb
@@ -634,6 +634,7 @@ class TopicQuery
       result = result.preload(:tags)
 
       if @options[:tags] && @options[:tags].size > 0
+        @options[:tags] = @options[:tags].split unless @options[:tags].respond_to?('each')
         @options[:tags].each { |t| t.downcase! if t.is_a? String }
 
         if @options[:match_all_tags]
diff --git a/spec/components/topic_query_spec.rb b/spec/components/topic_query_spec.rb
index 7eac899b2ba..7c70d4a049f 100644
--- a/spec/components/topic_query_spec.rb
+++ b/spec/components/topic_query_spec.rb
@@ -174,7 +174,7 @@ describe TopicQuery do
       let!(:no_tags_topic) { Fabricate(:topic) }
 
       it "returns topics with the tag when filtered to it" do
-        expect(TopicQuery.new(moderator, tags: [tag.name]).list_latest.topics)
+        expect(TopicQuery.new(moderator, tags: tag.name).list_latest.topics)
           .to contain_exactly(tagged_topic1, tagged_topic3)
 
         expect(TopicQuery.new(moderator, tags: [tag.id]).list_latest.topics)