diff --git a/config/feature_flags/development/web_ide_oauth.yml b/config/feature_flags/development/web_ide_oauth.yml
deleted file mode 100644
index 78aef7831e229730f5e728eb866353cf1b020453..0000000000000000000000000000000000000000
--- a/config/feature_flags/development/web_ide_oauth.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: web_ide_oauth
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138015
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/433324
-milestone: '16.7'
-type: development
-group: group::ide
-default_enabled: true
diff --git a/doc/user/enterprise_user/index.md b/doc/user/enterprise_user/index.md
index 7da51e36bfa94e0e6ce4297e18b7df8c21b6672e..fc2e5bd0be3d94b2fe2a15a8e37d3c2754272c6f 100644
--- a/doc/user/enterprise_user/index.md
+++ b/doc/user/enterprise_user/index.md
@@ -194,10 +194,11 @@ To disable 2FA:
 ### Enable the extension marketplace for the Web IDE and workspaces
 
 > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/161819) as a [beta](../../policy/experiment-beta-support.md#beta) in GitLab 17.0 [with flags](../../administration/feature_flags.md) named `web_ide_oauth` and `web_ide_extensions_marketplace`. Disabled by default.
-> - [Enabled on GitLab.com](https://gitlab.com/groups/gitlab-org/-/epics/11769) in GitLab 17.4.
+> - Feature flag `web_ide_oauth` [enabled on GitLab.com, self-managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163181) and feature flag `web_ide_extensions_marketplace` [enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) in GitLab 17.4.
+> - Feature flag `web_ide_oauth` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167464) in GitLab 17.5.
 
 FLAG:
-The availability of this feature is controlled by feature flags.
+The availability of this feature is controlled by a feature flag.
 For more information, see the history.
 
 If you have the Owner role for a top-level group, you can enable the
diff --git a/doc/user/profile/preferences.md b/doc/user/profile/preferences.md
index 4b1ea7ea983f0563b17ec3357ad407cbc1e519d1..a90a9d0cb0df956ab8b7379560ca580d1c007fec 100644
--- a/doc/user/profile/preferences.md
+++ b/doc/user/profile/preferences.md
@@ -404,10 +404,11 @@ DETAILS:
 **Offering:** GitLab.com
 
 > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151352) as a [beta](../../policy/experiment-beta-support.md#beta) in GitLab 17.0 [with flags](../../administration/feature_flags.md) named `web_ide_oauth` and `web_ide_extensions_marketplace`. Disabled by default.
-> - [Enabled on GitLab.com](https://gitlab.com/groups/gitlab-org/-/epics/11769) in GitLab 17.4.
+> - Feature flag `web_ide_oauth` [enabled on GitLab.com, self-managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163181) and feature flag `web_ide_extensions_marketplace` [enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) in GitLab 17.4.
+> - Feature flag `web_ide_oauth` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167464) in GitLab 17.5.
 
 FLAG:
-The availability of this feature is controlled by feature flags.
+The availability of this feature is controlled by a feature flag.
 For more information, see the history.
 
 You can use the [extension marketplace](../project/web_ide/index.md#extension-marketplace) to search and
diff --git a/doc/user/project/web_ide/index.md b/doc/user/project/web_ide/index.md
index a23726537bf11cb7cdc843b0ce2cdc662080dd6c..6253593561f4344e8b044856a482f046fda356e7 100644
--- a/doc/user/project/web_ide/index.md
+++ b/doc/user/project/web_ide/index.md
@@ -245,10 +245,11 @@ DETAILS:
 **Offering:** GitLab.com
 
 > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151352) as a [beta](../../../policy/experiment-beta-support.md#beta) in GitLab 17.0 [with flags](../../../administration/feature_flags.md) named `web_ide_oauth` and `web_ide_extensions_marketplace`. Disabled by default.
-> - [Enabled on GitLab.com](https://gitlab.com/groups/gitlab-org/-/epics/11769) in GitLab 17.4.
+> - Feature flag `web_ide_oauth` [enabled on GitLab.com, self-managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163181) and feature flag `web_ide_extensions_marketplace` [enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) in GitLab 17.4.
+> - Feature flag `web_ide_oauth` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167464) in GitLab 17.5.
 
 FLAG:
-The availability of this feature is controlled by feature flags.
+The availability of this feature is controlled by a feature flag.
 For more information, see the history.
 
 Prerequisites:
diff --git a/ee/spec/lib/ee/web_ide/extensions_marketplace_spec.rb b/ee/spec/lib/ee/web_ide/extensions_marketplace_spec.rb
index 9b867eb15307cd5275f433830d5aed28f55c8bc6..cdf90dfa71f0aee2f9dfb97c6256dd74713dfc83 100644
--- a/ee/spec/lib/ee/web_ide/extensions_marketplace_spec.rb
+++ b/ee/spec/lib/ee/web_ide/extensions_marketplace_spec.rb
@@ -32,7 +32,6 @@
       before do
         stub_feature_flags(
           web_ide_extensions_marketplace: current_user,
-          web_ide_oauth: current_user,
           vscode_web_ide: current_user
         )
 
diff --git a/ee/spec/lib/web_ide/settings/settings_integration_spec.rb b/ee/spec/lib/web_ide/settings/settings_integration_spec.rb
index a319b4b3085f50a6b1e1e5880a3b332baaee00c8..334e23793e830fce42cc1e4fba107834cb188c80 100644
--- a/ee/spec/lib/web_ide/settings/settings_integration_spec.rb
+++ b/ee/spec/lib/web_ide/settings/settings_integration_spec.rb
@@ -15,7 +15,7 @@
   subject(:settings) { described_class.get([:vscode_extensions_gallery_metadata], options) }
 
   before do
-    stub_feature_flags(vscode_web_ide: true, web_ide_oauth: true, web_ide_extensions_marketplace: true)
+    stub_feature_flags(vscode_web_ide: true, web_ide_extensions_marketplace: true)
     stub_licensed_features(disable_extensions_marketplace_for_enterprise_users: true)
     user.update!(extensions_marketplace_enabled: true)
   end
diff --git a/ee/spec/requests/groups_controller_spec.rb b/ee/spec/requests/groups_controller_spec.rb
index 64cce94c4e12d9f8fffed92849e60b3cf106c3d9..325b97aded90ad5ae68377dbb2f835708baf9afb 100644
--- a/ee/spec/requests/groups_controller_spec.rb
+++ b/ee/spec/requests/groups_controller_spec.rb
@@ -369,7 +369,6 @@
       before do
         stub_feature_flags(
           vscode_web_ide: true,
-          web_ide_oauth: true,
           web_ide_extensions_marketplace: true
         )
       end
diff --git a/lib/web_ide/default_oauth_application.rb b/lib/web_ide/default_oauth_application.rb
index d7b5a3a3b494b2ab283067e50685668ae6a6ea8a..959db953a8bd7dba89cc6e286ebe53f4a50ba2d1 100644
--- a/lib/web_ide/default_oauth_application.rb
+++ b/lib/web_ide/default_oauth_application.rb
@@ -4,7 +4,7 @@ module WebIde
   module DefaultOauthApplication
     class << self
       def feature_enabled?(current_user)
-        Feature.enabled?(:vscode_web_ide, current_user) && Feature.enabled?(:web_ide_oauth, current_user)
+        Feature.enabled?(:vscode_web_ide, current_user)
       end
 
       def oauth_application
diff --git a/lib/web_ide/extensions_marketplace.rb b/lib/web_ide/extensions_marketplace.rb
index 74aeb1b038a2e252239607ab4f7b9941d7cba8e1..4c6e919d49ce71fbe4b71dc530a02478a1deede2 100644
--- a/lib/web_ide/extensions_marketplace.rb
+++ b/lib/web_ide/extensions_marketplace.rb
@@ -7,8 +7,7 @@ module ExtensionsMarketplace
     # @return [Boolean]
     def self.feature_enabled_for_any_user?
       feature_flag_enabled_for_any_actor?(:web_ide_extensions_marketplace) &&
-        feature_flag_enabled_for_any_actor?(:vscode_web_ide) &&
-        feature_flag_enabled_for_any_actor?(:web_ide_oauth)
+        feature_flag_enabled_for_any_actor?(:vscode_web_ide)
     end
 
     # This returns true if the extensions marketplace feature is available to the given user
@@ -17,8 +16,7 @@ def self.feature_enabled_for_any_user?
     # @return [Boolean]
     def self.feature_enabled?(user:)
       Feature.enabled?(:web_ide_extensions_marketplace, user) &&
-        Feature.enabled?(:vscode_web_ide, user) &&
-        Feature.enabled?(:web_ide_oauth, user)
+        Feature.enabled?(:vscode_web_ide, user)
     end
 
     # This value is used when the end-user is accepting the third-party extension marketplace integration.
diff --git a/spec/controllers/admin/applications_controller_spec.rb b/spec/controllers/admin/applications_controller_spec.rb
index fa15ba607f7da46e74b379829b6b5afc2a16a0ac..c18c613c7f629729502bfa3b6b8ec93966358153 100644
--- a/spec/controllers/admin/applications_controller_spec.rb
+++ b/spec/controllers/admin/applications_controller_spec.rb
@@ -156,10 +156,6 @@
   describe "#reset_oauth_application_settings" do
     subject(:reset_oauth_application_settings) { post :reset_web_ide_oauth_application_settings }
 
-    before do
-      stub_feature_flags(web_ide_oauth: true)
-    end
-
     it 'returns 500 if no oauth application exists' do
       stub_application_setting(web_ide_oauth_application: nil)
       reset_oauth_application_settings
diff --git a/spec/helpers/ide_helper_spec.rb b/spec/helpers/ide_helper_spec.rb
index 35e7e74aa7a4b7331e829bb802bfc81d1a615e67..74f6c4148c7071bc1cb893b989114310db4475b5 100644
--- a/spec/helpers/ide_helper_spec.rb
+++ b/spec/helpers/ide_helper_spec.rb
@@ -144,30 +144,23 @@
   describe '#show_web_ide_oauth_callback_mismatch_callout?' do
     let_it_be(:oauth_application) { create(:oauth_application, owner: nil) }
 
-    it 'returns false if Web IDE OAuth is not enabled' do
-      stub_feature_flags(vscode_web_ide: true, web_ide_oauth: false)
-      expect(helper.show_web_ide_oauth_callback_mismatch_callout?).to be false
+    before do
+      stub_feature_flags(vscode_web_ide: true)
     end
 
-    context 'when Web IDE OAuth is enabled' do
-      before do
-        stub_feature_flags(vscode_web_ide: true, web_ide_oauth: true)
-      end
-
-      it 'returns false if no Web IDE OAuth application found' do
-        expect(helper.show_web_ide_oauth_callback_mismatch_callout?).to be false
-      end
+    it 'returns false if no Web IDE OAuth application found' do
+      expect(helper.show_web_ide_oauth_callback_mismatch_callout?).to be false
+    end
 
-      it "returns true if domain does not match OAuth application callback URLs" do
-        stub_application_setting({ web_ide_oauth_application: oauth_application })
-        expect(helper.show_web_ide_oauth_callback_mismatch_callout?).to be true
-      end
+    it "returns true if domain does not match OAuth application callback URLs" do
+      stub_application_setting({ web_ide_oauth_application: oauth_application })
+      expect(helper.show_web_ide_oauth_callback_mismatch_callout?).to be true
+    end
 
-      it "returns false if domain matches OAuth application callback URL" do
-        oauth_application.redirect_uri = "#{request.base_url}/oauth-redirect"
-        stub_application_setting({ web_ide_oauth_application: oauth_application })
-        expect(helper.show_web_ide_oauth_callback_mismatch_callout?).to be false
-      end
+    it "returns false if domain matches OAuth application callback URL" do
+      oauth_application.redirect_uri = "#{request.base_url}/oauth-redirect"
+      stub_application_setting({ web_ide_oauth_application: oauth_application })
+      expect(helper.show_web_ide_oauth_callback_mismatch_callout?).to be false
     end
   end
 
diff --git a/spec/lib/web_ide/default_oauth_application_spec.rb b/spec/lib/web_ide/default_oauth_application_spec.rb
index dc2359e771da8db5af017dedb975d59666926d2a..3d67ab7f5c772d912cfa036485bcd0073b3325b9 100644
--- a/spec/lib/web_ide/default_oauth_application_spec.rb
+++ b/spec/lib/web_ide/default_oauth_application_spec.rb
@@ -7,17 +7,16 @@
   let_it_be(:oauth_application) { create(:oauth_application, owner: nil) }
 
   describe '#feature_enabled?' do
-    where(:vscode_web_ide, :web_ide_oauth, :expectation) do
+    where(:vscode_web_ide, :expectation) do
       [
-        [ref(:current_user), false, false],
-        [false, ref(:current_user), false],
-        [ref(:current_user), ref(:current_user), true]
+        [ref(:current_user), true],
+        [false, false]
       ]
     end
 
     with_them do
       it 'returns the expected value' do
-        stub_feature_flags(vscode_web_ide: vscode_web_ide, web_ide_oauth: web_ide_oauth)
+        stub_feature_flags(vscode_web_ide: vscode_web_ide)
 
         expect(described_class.feature_enabled?(current_user)).to be(expectation)
       end
diff --git a/spec/lib/web_ide/extensions_marketplace_spec.rb b/spec/lib/web_ide/extensions_marketplace_spec.rb
index fbfcedfcc375aa4a6d3ae1b6d227c7f5c10c5a55..c1d923cdcf8269e689ae6fb53ecb853c0ee6662f 100644
--- a/spec/lib/web_ide/extensions_marketplace_spec.rb
+++ b/spec/lib/web_ide/extensions_marketplace_spec.rb
@@ -19,19 +19,17 @@
   end
 
   describe 'feature enabled methods' do
-    where(:vscode_web_ide, :web_ide_extensions_marketplace, :web_ide_oauth, :expectation) do
-      ref(:current_user) | ref(:current_user) | ref(:current_user) | true
-      ref(:current_user) | false              | ref(:current_user) | false
-      ref(:current_user) | ref(:current_user) | false              | false
-      false              | ref(:current_user) | false              | false
+    where(:vscode_web_ide, :web_ide_extensions_marketplace, :expectation) do
+      ref(:current_user) | ref(:current_user) | true
+      ref(:current_user) | false              | false
+      false              | ref(:current_user) | false
     end
 
     with_them do
       before do
         stub_feature_flags(
           vscode_web_ide: vscode_web_ide,
-          web_ide_extensions_marketplace: web_ide_extensions_marketplace,
-          web_ide_oauth: web_ide_oauth
+          web_ide_extensions_marketplace: web_ide_extensions_marketplace
         )
       end
 
@@ -72,7 +70,6 @@
       before do
         stub_feature_flags(
           web_ide_extensions_marketplace: current_user,
-          web_ide_oauth: current_user,
           vscode_web_ide: current_user
         )
       end
diff --git a/spec/requests/ide_controller_spec.rb b/spec/requests/ide_controller_spec.rb
index 925484810e9c24906c9e71613558eacb1b8ffb27..50f0393fa4623d042c6de9285412df6b0ead5a26 100644
--- a/spec/requests/ide_controller_spec.rb
+++ b/spec/requests/ide_controller_spec.rb
@@ -179,20 +179,6 @@
         end
       end
 
-      describe 'with web_ide_oauth flag off' do
-        before do
-          stub_feature_flags(web_ide_oauth: false)
-        end
-
-        it 'does not create oauth application' do
-          expect(Doorkeeper::Application).not_to receive(:new)
-
-          subject
-
-          expect(web_ide_oauth_application).to be_nil
-        end
-      end
-
       it 'ensures web_ide_oauth_application' do
         expect(Doorkeeper::Application).to receive(:new).and_call_original
 
@@ -264,14 +250,6 @@
 
         expect(response).to have_gitlab_http_status(:not_found)
       end
-
-      it 'with web_ide_oauth flag off, returns not_found' do
-        stub_feature_flags(web_ide_oauth: false)
-
-        oauth_redirect
-
-        expect(response).to have_gitlab_http_status(:not_found)
-      end
     end
   end