Code works with Serial Monitor but not with HC-06

Why does this code work with the Serial Monitor but not with the bluetooth Android app pictured below?
My LED just blinks red to indicate that it didn’t receive the correct code.

Here’s a picture of the app. It’s called Arduino Bluetooth

#include <Servo.h>

Servo servoA;
const int BLED=9;    
const int GLED=12;   
const int RLED=11; 
String passcode = "1234#";
String guess;
int position = 0;

void setup()
{
 Serial.begin(9600);
 servoA.attach(10);
 pinMode (BLED, OUTPUT);   
 pinMode (GLED, OUTPUT);   
 pinMode (RLED, OUTPUT);
 servoA.write(position--); 
}

void loop ()
{
  while(Serial.available() == 0);
  guess = Serial.readStringUntil('\n' || '#' || '*');
  
  if(guess == passcode)
    {
      servoA.write(200);
      digitalWrite(GLED, HIGH);
      delay(1000);
      digitalWrite(GLED, LOW);
    }
   else if(guess == "*")
   {
     servoA.write(0);
     digitalWrite(BLED, HIGH);
     delay(1000);
     digitalWrite(BLED, LOW);
   }
   else
     {
       digitalWrite(RLED, HIGH);
       delay(1000);
       digitalWrite(RLED, LOW);
     }
 guess = "";    

}

guess = Serial.readStringUntil('\n' || '#' || '*');

Can you explain that line, please?

AWOL: guess = Serial.readStringUntil('\n' || '#' || '*');

Can you explain that line, please?

Well, originally, it was to just Serial.readStringUntil('\n'); and that worked with the serial monitor but the app I was using had a button called "Send" so hitting enter wasn't doing anything but getting the red light which means it sent the wrong code. I added those other characters in an attempt to not need the new line to execute but it didn't work.

'\n', '#' and '*' are all non-zero, so the result of ORing them together is true.

Adjustify: I added those other characters in an attempt to not need the new line to execute but it didn't work.

What made you think it would work?

Have a look at Serial Input Basics. If you really do need to try for 3 different end-markers you should be able to adapt the 2nd example to do so.

...R

Adjustify: Why does this code work with the Serial Monitor but not with the bluetooth Android app

Because the Serial Monitor is sending code Arduino expects to receive, and the Android isn't. It may have something to do with carriage return and/or linefeed.

Adjustify: Why does this code work with the Serial Monitor but not with the bluetooth Android app

Because the Serial Monitor is sending code Arduino expects to receive, and the Android isn't. It may have something to do with carriage return and/or linefeed.