12 characters only displaying on Serial Monitor ! help guys

Hi guys ! I'm working right now with my project that the text message from GSM module will display on RGB LED Strip , if have conditions using text message ; View AllMessage , Delete AllMessage , Delete Message # ,Display AllMessage , if the textmessage is not the conditions above , it will automatically stored in a array (that the message that will display on RGB LED Strip)

But when i started to text Display AllMessage( display all message that saved in array) and text again some message it only read 12 characters in my text . Are my arduino is too busy to display message in RGB Led strip so that when i text again it only accept only 12 characters ? help me guys the code is below . And i uploaded pictures , i texted 3 messages that will display on array , " The Legend of Avatar " and etc . then I texted Display Allmessage ( to display in RGB ) the 4th text is also " The Legend of Avatar " but it in serial monitor it cut on 12 characters only

 if(mySerial.available()>0){
  Message = mySerial.readString();
  delay(500);

  Message=Message.substring(Message.indexOf("+CMT"));
  Message=Message.substring(Message.indexOf("\n"));
  Message.replace("\n","");
  Serial.println(Message);
  

  if(Message.indexOf("View Message")>=0){
    
  
     mySerial.println("AT+CMGS=\"+639290584072\"\r"); // Replace x with mobile number
     delay(1000);
       for(int i=0; i <5; i++){
     mySerial.println("Text: "+ text[i]);// The SMS text you want to send
     delay(100);
       }
     mySerial.println((char)26);// ASCII code of CTRL+Z
      delay(1000);
  
  }
  else if(Message.indexOf("Delete AllText")>=0){
    for(int i = 0; i < 5; i++){
      text[i] = "";
    }
  }


  //Delete Message
   else if (Message.substring(0, 11) == "Delete Text") {
    Message.remove(0,11);
    text[Message.toInt() - 1] = "";
    Serial.println(Message);
  }

  else if(Message.indexOf("Display AllMessage")>=0){
    j = 1;
  
  }
  
else {
    if(Message == ""){
      Serial.println("");
    }
    else{
  text[i] = Message;
  Serial.print("Message Stored!");
   Serial.println(i);
  i++;
    }
    }
}

if( j == 1){
    for(int i=0; i <5; i++){
  matrix->fillScreen(0);
  matrix->setCursor(1, 1);
  matrix->setTextColor(colors[i]);
  matrix->print(text[i]);

   matrix->show();
  delay(1000);
     }
     if(i == 4){
      i = 0;
     }  
}

if(mySerial.available()>0){
  Message = mySerial.readString();
  delay(500);

If there is at least one byte to be read, block for some undefined period of time, hoping more serial data will arrive. When you finally give up, stuff your head in the sand uselessly for another half second. WHY?

  Message=Message.substring(Message.indexOf("+CMT"));
  Message=Message.substring(Message.indexOf("\n"));

Isyourspacekeybroken? Get it fixed!

It is stupid to pass -1 to substring. You should be CERTAIN that the String contains "+CMT" and/or '\n' before assuming that it does.

Snippets suck. Your indenting sucks. Use Tools + Auto Format BEFORE you post ALL OF YOUR CODE.

Have a look at the examples in Serial Input Basics - simple reliable ways to receive data.

...R