diff --git a/src/ipa/libipa/awb.cpp b/src/ipa/libipa/awb.cpp
index da835bec018d..81d616c3a646 100644
--- a/src/ipa/libipa/awb.cpp
+++ b/src/ipa/libipa/awb.cpp
@@ -372,6 +372,12 @@ void AwbAlgorithmBase::process(awb::ActiveState &state,
 			       const AwbStats &stats, unsigned int lux,
 			       ControlList &metadata)
 {
+	/* Populate metadata. */
+	metadata.set(controls::AwbEnable, frameContext.autoEnabled);
+	metadata.set(controls::ColourGains, { static_cast<float>(frameContext.gains.r()),
+					      static_cast<float>(frameContext.gains.b()) });
+	metadata.set(controls::ColourTemperature, frameContext.colourTemperature);
+
 	if (!stats.valid())
 		return;
 
@@ -393,12 +399,6 @@ void AwbAlgorithmBase::process(awb::ActiveState &state,
 	state.automatic.gains = awbResult.gains * speed +
 				state.automatic.gains * (1 - speed);
 
-	/* Populate metadata. */
-	metadata.set(controls::AwbEnable, frameContext.autoEnabled);
-	metadata.set(controls::ColourGains, { static_cast<float>(frameContext.gains.r()),
-					      static_cast<float>(frameContext.gains.b()) });
-	metadata.set(controls::ColourTemperature, frameContext.colourTemperature);
-
 	LOG(Awb, Debug) << std::showpoint << "Means " << stats.rgbMeans()
 			<< ", gains " << state.automatic.gains
 			<< ", temp " << state.automatic.colourTemperature << "K";
