diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml
index a22606edb6c5c0013a10094a06efbac5ae486170..def7d95fd5663a1c85d06b4cc6b8de796d021a22 100644
--- a/cumulus/polkadot-parachain/Cargo.toml
+++ b/cumulus/polkadot-parachain/Cargo.toml
@@ -172,4 +172,3 @@ try-runtime = [
 	"sp-runtime/try-runtime",
 ]
 fast-runtime = ["bridge-hub-rococo-runtime/fast-runtime"]
-elastic-scaling-experimental = ["polkadot-service/elastic-scaling-experimental"]
diff --git a/polkadot/node/network/collator-protocol/Cargo.toml b/polkadot/node/network/collator-protocol/Cargo.toml
index c02999a59b5a976748a7afe641b069851f6eb3c8..d7291552738dbf4f6dd86e44bba6dd953beca55f 100644
--- a/polkadot/node/network/collator-protocol/Cargo.toml
+++ b/polkadot/node/network/collator-protocol/Cargo.toml
@@ -45,4 +45,3 @@ polkadot-primitives-test-helpers = { path = "../../../primitives/test-helpers" }
 
 [features]
 default = []
-elastic-scaling-experimental = []
diff --git a/polkadot/node/network/collator-protocol/src/collator_side/mod.rs b/polkadot/node/network/collator-protocol/src/collator_side/mod.rs
index 88375d58309047286dd082759bfb063aa02e7304..80a85420b392b930f451689f22edffb4667a0588 100644
--- a/polkadot/node/network/collator-protocol/src/collator_side/mod.rs
+++ b/polkadot/node/network/collator-protocol/src/collator_side/mod.rs
@@ -924,7 +924,6 @@ async fn send_collation(
 	let peer_id = request.peer_id();
 	let candidate_hash = receipt.hash();
 
-	#[cfg(feature = "elastic-scaling-experimental")]
 	let result = match parent_head_data {
 		ParentHeadData::WithData { head_data, .. } =>
 			Ok(request_v2::CollationFetchingResponse::CollationWithParentHeadData {
@@ -935,13 +934,6 @@ async fn send_collation(
 		ParentHeadData::OnlyHash(_) =>
 			Ok(request_v1::CollationFetchingResponse::Collation(receipt, pov)),
 	};
-	#[cfg(not(feature = "elastic-scaling-experimental"))]
-	let result = {
-		// suppress unused warning
-		let _parent_head_data = parent_head_data;
-
-		Ok(request_v1::CollationFetchingResponse::Collation(receipt, pov))
-	};
 
 	let response =
 		OutgoingResponse { result, reputation_changes: Vec::new(), sent_feedback: Some(tx) };
diff --git a/polkadot/node/network/collator-protocol/src/collator_side/tests/mod.rs b/polkadot/node/network/collator-protocol/src/collator_side/tests/mod.rs
index 689e03ce4737bcdd39d0651009f212e3cb364eea..412792bbecfbabb1644537e2b5a470d6f32ee0b4 100644
--- a/polkadot/node/network/collator-protocol/src/collator_side/tests/mod.rs
+++ b/polkadot/node/network/collator-protocol/src/collator_side/tests/mod.rs
@@ -144,7 +144,6 @@ impl Default for TestState {
 impl TestState {
 	/// Adds a few more scheduled cores to the state for the same para id
 	/// compared to the default.
-	#[cfg(feature = "elastic-scaling-experimental")]
 	pub fn with_elastic_scaling() -> Self {
 		let mut state = Self::default();
 		let para_id = state.para_id;
diff --git a/polkadot/node/network/collator-protocol/src/collator_side/tests/prospective_parachains.rs b/polkadot/node/network/collator-protocol/src/collator_side/tests/prospective_parachains.rs
index 2a147aef69e2ff404f5270d9d3949ba533e766f8..0a0a85fb1f2750a54c909b523ab54564652d3354 100644
--- a/polkadot/node/network/collator-protocol/src/collator_side/tests/prospective_parachains.rs
+++ b/polkadot/node/network/collator-protocol/src/collator_side/tests/prospective_parachains.rs
@@ -443,7 +443,6 @@ fn distribute_collation_up_to_limit() {
 /// Tests that collator send the parent head data in
 /// case the para is assigned to multiple cores (elastic scaling).
 #[test]
-#[cfg(feature = "elastic-scaling-experimental")]
 fn send_parent_head_data_for_elastic_scaling() {
 	let test_state = TestState::with_elastic_scaling();
 
diff --git a/polkadot/node/service/Cargo.toml b/polkadot/node/service/Cargo.toml
index 37836f134bda646e632a6f472f6416ee8ea03081..0dfdf926b1b098c7a59e26a809eace3aeb877189 100644
--- a/polkadot/node/service/Cargo.toml
+++ b/polkadot/node/service/Cargo.toml
@@ -238,7 +238,3 @@ runtime-metrics = [
 	"rococo-runtime?/runtime-metrics",
 	"westend-runtime?/runtime-metrics",
 ]
-
-elastic-scaling-experimental = [
-	"polkadot-collator-protocol?/elastic-scaling-experimental",
-]
diff --git a/polkadot/parachain/test-parachains/adder/collator/Cargo.toml b/polkadot/parachain/test-parachains/adder/collator/Cargo.toml
index dbc8507d599bb5e7899a8ee99450e95e4c480618..f9aaab74debd8190e426ed49f3c8a966d4980f49 100644
--- a/polkadot/parachain/test-parachains/adder/collator/Cargo.toml
+++ b/polkadot/parachain/test-parachains/adder/collator/Cargo.toml
@@ -24,7 +24,7 @@ log = { workspace = true, default-features = true }
 test-parachain-adder = { path = ".." }
 polkadot-primitives = { path = "../../../../primitives" }
 polkadot-cli = { path = "../../../../cli" }
-polkadot-service = { path = "../../../../node/service", features = ["elastic-scaling-experimental", "rococo-native"] }
+polkadot-service = { path = "../../../../node/service", features = ["rococo-native"] }
 polkadot-node-primitives = { path = "../../../../node/primitives" }
 polkadot-node-subsystem = { path = "../../../../node/subsystem" }
 
diff --git a/polkadot/parachain/test-parachains/undying/collator/Cargo.toml b/polkadot/parachain/test-parachains/undying/collator/Cargo.toml
index 28efdbbf242f7879615928bb228a4975b54c2d0c..08d1e74d87983bbcc223eaeb71a64feda450f154 100644
--- a/polkadot/parachain/test-parachains/undying/collator/Cargo.toml
+++ b/polkadot/parachain/test-parachains/undying/collator/Cargo.toml
@@ -24,7 +24,7 @@ log = { workspace = true, default-features = true }
 test-parachain-undying = { path = ".." }
 polkadot-primitives = { path = "../../../../primitives" }
 polkadot-cli = { path = "../../../../cli" }
-polkadot-service = { path = "../../../../node/service", features = ["elastic-scaling-experimental", "rococo-native"] }
+polkadot-service = { path = "../../../../node/service", features = ["rococo-native"] }
 polkadot-node-primitives = { path = "../../../../node/primitives" }
 polkadot-node-subsystem = { path = "../../../../node/subsystem" }
 
diff --git a/prdoc/pr_4595.prdoc b/prdoc/pr_4595.prdoc
new file mode 100644
index 0000000000000000000000000000000000000000..8baa6e8a91f3c54c50a5f20b2e03e812a8857162
--- /dev/null
+++ b/prdoc/pr_4595.prdoc
@@ -0,0 +1,25 @@
+title: "Remove `elastic-scaling-experimental` feature flag"
+
+doc:
+  - audience: Node Dev
+    description: |
+      The feature was masking the ability of collators to respond with `CollationWithParentHeadData`
+      to validator collation fetch requests, a requirement for elastic scaling. 
+      Please note that `CollationWithParentHeadData` is only sent by collators of parachains with 
+      multiple cores assigned, otherwise collators must respond with `CollationFetchingResponse::Collation`
+  - audience: Node Operator
+    description: |
+      This change enables elastic scaling support in collators. Please upgrade to latest version, 
+      otherwise validator nodes will not be able to back elastic parachain blocks leading to 
+      missed rewards. 
+
+crates:
+  - name: polkadot-collator-protocol
+    bump: major
+    validate: false
+  - name: polkadot-service
+    bump: major
+    validate: false
+  - name: polkadot-parachain-bin
+    bump: minor
+    validate: false