diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 02c89bc..253a310 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -3601,6 +3601,8 @@
 
   /*!
    * SSE between the current frame and the reconstructed last frame
+   * It is only used for CBR mode.
+   * It is not used if the reference frame has a different frame size.
    */
   uint64_t rec_sse;
 
diff --git a/av1/encoder/ratectrl.c b/av1/encoder/ratectrl.c
index 2000111..ecbfa9e 100644
--- a/av1/encoder/ratectrl.c
+++ b/av1/encoder/ratectrl.c
@@ -188,8 +188,7 @@
          correction_factor >= MIN_BPB_FACTOR);
 
   if (cpi->oxcf.rc_cfg.mode == AOM_CBR && frame_type != KEY_FRAME &&
-      accurate_estimate) {
-    assert(cpi->rec_sse != UINT64_MAX);
+      accurate_estimate && cpi->rec_sse != UINT64_MAX) {
     const int mbs = cm->mi_params.MBs;
     const double sse_sqrt =
         (double)((int)sqrt((double)(cpi->rec_sse)) << BPER_MB_NORMBITS) /
@@ -2086,6 +2085,13 @@
   // TODO(yunqing): support scaled reference frames.
   if (cpi->scaled_ref_buf[LAST_FRAME - 1]) return;
 
+  for (int i = 0; i < 2; ++i) {
+    if (unscaled_src->widths[i] != yv12->widths[i] ||
+        unscaled_src->heights[i] != yv12->heights[i]) {
+      return;
+    }
+  }
+
   const int num_mi_cols = cm->mi_params.mi_cols;
   const int num_mi_rows = cm->mi_params.mi_rows;
   const BLOCK_SIZE bsize = BLOCK_64X64;
diff --git a/test/encode_api_test.cc b/test/encode_api_test.cc
index 044519a..7613056 100644
--- a/test/encode_api_test.cc
+++ b/test/encode_api_test.cc
@@ -392,7 +392,6 @@
  public:
   explicit AV1Encoder(int speed) : speed_(speed) {}
   ~AV1Encoder();
-
   void Configure(unsigned int threads, unsigned int width, unsigned int height,
                  aom_rc_mode end_usage, unsigned int usage);
   void Encode(bool key_frame);
@@ -483,6 +482,25 @@
   } while (got_data);
 }
 
+TEST(EncodeAPI, Buganizer314858909) {
+  AV1Encoder encoder(7);
+
+  encoder.Configure(6, 1582, 750, AOM_CBR, AOM_USAGE_REALTIME);
+
+  // Encode a frame.
+  encoder.Encode(false);
+
+  encoder.Configure(0, 1582, 23, AOM_CBR, AOM_USAGE_REALTIME);
+
+  // Encode a frame..
+  encoder.Encode(false);
+
+  encoder.Configure(16, 1542, 363, AOM_CBR, AOM_USAGE_REALTIME);
+
+  // Encode a frame..
+  encoder.Encode(false);
+}
+
 // Run this test to reproduce the bug in fuzz test: ASSERT: cpi->rec_sse !=
 // UINT64_MAX in av1_rc_bits_per_mb.
 TEST(EncodeAPI, Buganizer310766628) {
