diff --git a/src/ipa/mali-c55/algorithms/agc.cpp b/src/ipa/mali-c55/algorithms/agc.cpp
index bf9d3f7d4a..1b7687e723 100644
--- a/src/ipa/mali-c55/algorithms/agc.cpp
+++ b/src/ipa/mali-c55/algorithms/agc.cpp
@@ -257,13 +257,20 @@ void Agc::process(IPAContext &context,
 	}
 
 	statistics_.parseStatistics(stats);
+	if (!statistics_.isValid()) {
+		LOG(MaliC55Agc, Debug) << "Ignoring invalid statistics";
+		agc_.process(context.configuration.agc, context.activeState.agc, frameContext.agc, {}, metadata);
+		return;
+	}
 
-	agc_.process(context.configuration.agc, context.activeState.agc, frameContext.agc, {{
-		.traits = AgcTraits(statistics_),
-		.yHist = statistics_.yHist,
-		.exposure = frameContext.sensor.exposure,
-		.gain = frameContext.sensor.gain,
-	}}, metadata);
+	agc_.process(context.configuration.agc, context.activeState.agc, frameContext.agc,
+		     { {
+			     .traits = AgcTraits(statistics_),
+			     .yHist = statistics_.yHist,
+			     .exposure = frameContext.sensor.exposure,
+			     .gain = frameContext.sensor.gain,
+		     } },
+		     metadata);
 }
 
 REGISTER_IPA_ALGORITHM(Agc, "Agc")
diff --git a/src/ipa/mali-c55/algorithms/agc.h b/src/ipa/mali-c55/algorithms/agc.h
index 809a57c53a..998ef57210 100644
--- a/src/ipa/mali-c55/algorithms/agc.h
+++ b/src/ipa/mali-c55/algorithms/agc.h
@@ -32,6 +32,11 @@ public:
 	uint32_t decodeBinValue(uint16_t binVal);
 	void parseStatistics(const mali_c55_stats_buffer *stats);
 
+	bool isValid() const
+	{
+		return !rHist.empty() && !gHist.empty() && !bHist.empty();
+	}
+
 	Histogram rHist;
 	Histogram gHist;
 	Histogram bHist;
