OLS is not Apache. If OLS doesn't use status code 500 if a status code outside the valid range is used this is just an undefined case in OLS. You can complain about this, but before you do, you should first familiarize yourself with RFC.
btw. Blocking requests by IP address is extremely ineffective. You might as well try tilting at windmills.
I forgot to say I use LSE not OLS. I expect a correct logging nonetheless. No matter what response code is there. Logging should not have anything to do with following up a request or not. It's just that, logging.
About the blocking, this is just one of the solutions in place. These are block rules for specific requests we know are made by scrapers and\or malware and not yet in blocking lists (mod_sec known bad behaviours rules, crowdsec paid lists, etc). We just picked the 666 code for fun, but could just use any regular one like the 418 we ended up using (and was made for fun too, 418 = "I'm a teapot").
We focus on a specific CMS, for which we provide professional hosting, and we have our own set of custom rules created by experience.
Anyway I just wanted to know if it was normal to not have anything logged at all.
Anyway talking about RFC, it's clearly stated that:
Values outside the range 100..599 are invalid. Implementations often use three-digit integer values outside of that range (i.e., 600..999) for internal communication of non-HTTP status (e.g., library errors). A client that receives a response with an invalid status code SHOULD process the response as if it had a 5xx (Server Error) status code.
So it should at least respond and log a 500 error. LSWS replies my status code 666 actually. that's not the problem. The problem is that the relative logs don't happen. So this is clearly a bug or at least a not compliancy of RFC you quoted.