Ok, here is what we found.
If you attempted to open an encrypted realsqldatabase in a version of RB prior to 2012r2, then you would get an error 26 ( File is encrypted or is not a database ); however, if you try to open it with 2012r2 or later, you get an error 21 ( Library routine called out of sequence). So our problem was that the error we were checking for to know the file was encrypted was failing and our application would not attempt to pass the password to it because it didn't recognize the error code.
If we modify our applications to check for error 26 or error 21, then it works, but should it???
Usually when I do this I dont try & target a specific error code.
I try without the password and if that fails try the encrypted.
The db engine (sqlite) source code may change, we don't control that, and it may be the source of the changed error code.
There are / were only 4 bug reports fixed in the engine between version 2012r1.2 and 2002r2 - none of which changed error codes that I can see.