diff --git a/app/models/account.rb b/app/models/account.rb
index 2145cfcb64..886b29b873 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -108,6 +108,8 @@ class Account < ApplicationRecord
   validates :shared_inbox_url, absence: true, if: :local?, on: :create
   validates :followers_url, absence: true, if: :local?, on: :create
 
+  normalizes :username, with: ->(username) { username.squish }
+
   scope :remote, -> { where.not(domain: nil) }
   scope :local, -> { where(domain: nil) }
   scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) }
@@ -475,7 +477,6 @@ class Account < ApplicationRecord
   end
 
   before_validation :prepare_contents, if: :local?
-  before_validation :prepare_username, on: :create
   before_create :generate_keys
   before_destroy :clean_feed_manager
 
@@ -493,10 +494,6 @@ class Account < ApplicationRecord
     note&.strip!
   end
 
-  def prepare_username
-    username&.squish!
-  end
-
   def generate_keys
     return unless local? && private_key.blank? && public_key.blank?