diff --git a/app/models/generic_commit_status.rb b/app/models/generic_commit_status.rb
index 6c8bfc3533454ac1d569a165b057c8b5f1c26d54..b02074849a1a96fecf44ba7fe47f31fd2e2b4216 100644
--- a/app/models/generic_commit_status.rb
+++ b/app/models/generic_commit_status.rb
@@ -3,8 +3,6 @@
 class GenericCommitStatus < CommitStatus
   EXTERNAL_STAGE_IDX = 1_000_000
 
-  before_validation :set_default_values
-
   validates :target_url, addressable_url: true,
                          length: { maximum: 255 },
                          allow_nil: true
@@ -13,12 +11,6 @@ class GenericCommitStatus < CommitStatus
   # GitHub compatible API
   alias_attribute :context, :name
 
-  def set_default_values
-    self.context ||= 'default'
-    self.stage ||= 'external'
-    self.stage_idx ||= EXTERNAL_STAGE_IDX
-  end
-
   def tags
     [:external]
   end
diff --git a/lib/api/commit_statuses.rb b/lib/api/commit_statuses.rb
index 7a198f30e38ab0547ab43c5e5ac733efa606bc01..531235dc9b295fd6f62aa0be548f80a8f0c481c2 100644
--- a/lib/api/commit_statuses.rb
+++ b/lib/api/commit_statuses.rb
@@ -125,7 +125,8 @@ class CommitStatuses < ::API::Base
           user: current_user,
           protected: user_project.protected_for?(ref),
           ci_stage: stage,
-          stage_idx: stage.position
+          stage_idx: stage.position,
+          stage: 'external'
         )
 
         updatable_optional_attributes = %w[target_url description coverage]
diff --git a/spec/models/generic_commit_status_spec.rb b/spec/models/generic_commit_status_spec.rb
index 9d70019734b63af43766f0722850a2e1f851fb6a..fe22b20ecf9fc6567fceb4cedc6a8e0009b6e4c0 100644
--- a/spec/models/generic_commit_status_spec.rb
+++ b/spec/models/generic_commit_status_spec.rb
@@ -20,7 +20,7 @@
   end
 
   describe '#name_uniqueness_across_types' do
-    let(:attributes) { {} }
+    let(:attributes) { { context: 'default' } }
     let(:commit_status) { described_class.new(attributes) }
     let(:status_name) { 'test-job' }
 
@@ -39,7 +39,7 @@
     end
 
     context 'with only a pipeline' do
-      let(:attributes) { { pipeline: pipeline } }
+      let(:attributes) { { pipeline: pipeline, context: 'default' } }
 
       context 'without name' do
         it_behaves_like 'it does not have uniqueness errors'
@@ -129,32 +129,6 @@
     end
   end
 
-  describe 'set_default_values' do
-    before do
-      generic_commit_status.context = nil
-      generic_commit_status.stage = nil
-      generic_commit_status.save!
-    end
-
-    describe '#context' do
-      subject { generic_commit_status.context }
-
-      it { is_expected.not_to be_nil }
-    end
-
-    describe '#stage' do
-      subject { generic_commit_status.stage }
-
-      it { is_expected.not_to be_nil }
-    end
-
-    describe '#stage_idx' do
-      subject { generic_commit_status.stage_idx }
-
-      it { is_expected.not_to be_nil }
-    end
-  end
-
   describe '#present' do
     subject { generic_commit_status.present }