Regression: Binance BNB fee conversion with default Gate.io rate oracle causes continuous error storm
Describe the bug
When running Grid Executors on Binance Spot with trading fees paid in BNB, Hummingbot repeatedly fails to convert the BNB fee into USDT.
The generated conf_client.yml uses gate_io as the default rate oracle source:
rate_oracle_source: name: gate_io
After an order is filled and its fee is paid in BNB, the following exception is generated continuously:
ValueError: Could not find the exchange rate for BNB-USDT using the rate source gate_io rate oracle (please verify it has been correctly configured)
With two running Grid Executors, I observed approximately 1,102 occurrences and 12,240 log lines per minute. The repeated fee calculation consumes unnecessary CPU and produces very large amounts of Docker and database traffic. It may also cause cumulative fees and net PnL to be reported incorrectly.
Expected behavior:
- Hummingbot should successfully obtain the BNB-USDT conversion rate;
- or fall back to the active Binance connector/rate source;
- and should not retry and log the same conversion failure thousands of times per minute.
This appears related to previously closed issues #6964 and #6927.
Steps to reproduce
- Install the latest Hummingbot API using Docker.
- Create an account using the generated default
conf_client.yml, withrate_oracle_source.nameset togate_ioand the global token set toUSDT. - Connect a Binance Spot account that uses BNB to pay trading fees.
- Start a Grid Executor on a Binance USDT spot trading pair.
- Wait for an order to be filled and for Binance to charge the trading fee in BNB.
- Check the Hummingbot API Docker logs.
- Observe that
Error calculating fee paid in USDTand the BNB-USDT rate-oracle exception are logged repeatedly on every update.
Release version
20260729 (Hummingbot API 1.0.1)
Type of installation
Docker
Attach required files
hummingbot_github_issue_bnb_fee_error.log hummingbot_github_issue_conf_client_sanitized.yml
Source: hummingbot/hummingbot