Nodes calculate the fee for a transaction in USD but convert that value to HBARs using the current exchange rate before deducting that amount from the account paying for the transaction. Consequently, the fee in HBARs for the same transaction may vary from hour to hour, even as the fee in USD stays stable. If the client stipulates a max transaction fee for their transactions, a transaction may fail with an INSUFFICIENT_TX_FEE error if that stipulated max value is less than the value calculated by the nodes using the current exchange rate. Clients can protect themselves against this HBAR fee volatility by stipulating a sufficiently high max transaction fee (as they will only be charged the actual fee, not the max they stipulate) for transactions.
This applies to the payment transactions for queries as well.