diff --git a/CHANGELOG b/CHANGELOG
index a7d352b53aa3c8bbd2100a4ece089136566d9647..04bcbf9dad22819348a2c0d242bb177a2225c91e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,7 +4,6 @@ v 8.4.0 (unreleased)
   - The default GitLab logo now acts as a loading indicator
   - Accept 2xx status codes for successful Web hook triggers (Stan Hu)
   - Fix missing date of month in network graph when commits span a month (Stan Hu)
-  - Fix Error 500 when visiting build page of project with nil runners_token (Stan Hu)
   - Expire view caches when application settings change (e.g. Gravatar disabled) (Stan Hu)
   - Don't notify users twice if they are both project watchers and subscribers (Stan Hu)
   - Implement new UI for group page
@@ -40,6 +39,7 @@ v 8.3.3 (unreleased)
   - Fix project transfer e-mail sending incorrect paths in e-mail notification (Stan Hu)
   - Enable "Add key" button when user fills in a proper key (Stan Hu)
   - Fix error in processing reply-by-email messages (Jason Lee)
+  - Fix Error 500 when visiting build page of project with nil runners_token (Stan Hu)
 
 v 8.3.2
   - Change single user API endpoint to return more detailed data (Michael Potthoff)
diff --git a/app/models/project.rb b/app/models/project.rb
index 0d7341e138420217bbf666635b342b2fc5c3dab4..31990485f7d7653e48db6d8bc8cadca024385e00 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -195,6 +195,7 @@ class Project < ActiveRecord::Base
   validates :avatar, file_size: { maximum: 200.kilobytes.to_i }
 
   add_authentication_token_field :runners_token
+  before_save :ensure_runners_token
 
   mount_uploader :avatar, AvatarUploader