I know what the problem is, because I faced it too when I was developing the calculator of my bot.
The problem is that the formula you are using to calculate how many tokens a user will get is always resting 1 to the real value, just in case something goes wrong.
For example, suppose the formula says you’ll get 0.001000001 BTC from a trade, but the app rest 1 decimal and tells you you’ll get at least 0.001, although in reality you’ll most likely really get 0.001000001.
But if you apply this method to the tokens that have 0 decimals, like the QUEST, when you try to buy 1 token, the app will rest 1 and tell you you’ll get 0 tokens, and so the transaction can’t be done.