Reading from bluetooth serial doesn't always read the byte

I have a SoftwareSerial interface set up with an HC-06 bluetooth module to read a byte similar to a serial monitor. The problem I am having is since I am using it to control a LED strip, the FastLED.show() function messes with the BT.read() function.

if (BT.available() > 0) {
ch = BT.read();
Serial.print("I received: ");
Serial.println(ch);
} else {
FastLED.show();
FastLED.delay(1000 / UPDATES_PER_SECOND);
}

I have tried reading from the serial monitor instead and it works just fine. I am wondering if this is a problem with the HC-06 or the softwareSerial library. The baud rate of the device is 9600 so that shouldn't be the problem.

Why is the call to FastLED.show conditional on serial data being not available?

We usually need to see the whole code as snippets leave out important bits. Read the how to use this forum-please read sticky to see how to properly post code and some advice on how to ask an effective question. Remove useless white space and format the code with the IDE autoformat tool (crtl-t or Tools, Auto Format) before posting code.