diff --git a/native/src/proximity_info.cpp b/native/src/proximity_info.cpp
index 69f6ef1be2a702b4414cfd66deffa89090de43da..8507db94aad43b24ed07cb0688d0aba54cfc9361 100644
--- a/native/src/proximity_info.cpp
+++ b/native/src/proximity_info.cpp
@@ -156,7 +156,7 @@ void ProximityInfo::calculateNearbyKeyCodes(
     int insertPos = 0;
     inputCodes[insertPos++] = primaryKey;
     const int startIndex = getStartIndexFromCoordinates(x, y);
-
+    if (startIndex >= 0) {
         for (int i = 0; i < MAX_PROXIMITY_CHARS_SIZE; ++i) {
             const int32_t c = mProximityCharsArray[startIndex + i];
             if (c < KEYCODE_SPACE || c == primaryKey) {
@@ -208,7 +208,7 @@ void ProximityInfo::calculateNearbyKeyCodes(
                 }
             }
         }
-
+    }
     // Add a delimiter for the proximity characters
     for (int i = insertPos; i < MAX_PROXIMITY_CHARS_SIZE; ++i) {
         inputCodes[i] = NOT_A_CODE;