We are encountering repeated timeout errors when SHKeeper communicates with the Bitcoin RPC service, as well as when downloading the Ethereum blockchain key from the ETH settings page.
Example error from logs: WARNING btc.py:50 balance(): Error: HTTPConnectionPool(host='bitcoin-shkeeper', port=6000): Read timed out. (read timeout=10).
So BTC amount cannot be updated and stays 0 in front-end.
Observed Behavior:
Bitcoin balance checks via btc.py intermittently fail with a read timeout (10s).
The ETH Settings page fails to download the blockchain key due to a frontend timeout.
The browser returns an error after ~10 seconds.
When running the same request manually from inside the Docker container, the request does succeed, but takes ~13+ seconds to complete.
This indicates the backend service is still processing correctly, but the request exceeds the current timeout limits.
Expected Behavior:
Long-running RPC requests (Bitcoin balance scan, ETH key download) should not fail due to strict timeouts.
Either:
the timeout should be increased
the request should be handled asynchronously (background task / polling).
Root Cause (Likely)
The HTTP client timeout is set to 10 seconds, which is too low for:
Bitcoin RPC calls (especially scantxoutset, balance calculations)
Ethereum key export operations
Frontend timeout appears to be aligned with the same 10s limit, causing user-visible failures even though the backend eventually responds.
We are encountering repeated timeout errors when SHKeeper communicates with the Bitcoin RPC service, as well as when downloading the Ethereum blockchain key from the ETH settings page.
Example error from logs: WARNING btc.py:50 balance(): Error: HTTPConnectionPool(host='bitcoin-shkeeper', port=6000): Read timed out. (read timeout=10).
So BTC amount cannot be updated and stays 0 in front-end.
Observed Behavior:
Bitcoin balance checks via btc.py intermittently fail with a read timeout (10s).
The ETH Settings page fails to download the blockchain key due to a frontend timeout.
The browser returns an error after ~10 seconds.
When running the same request manually from inside the Docker container, the request does succeed, but takes ~13+ seconds to complete.
This indicates the backend service is still processing correctly, but the request exceeds the current timeout limits.
Expected Behavior:
Long-running RPC requests (Bitcoin balance scan, ETH key download) should not fail due to strict timeouts.
Either:
the timeout should be increased
the request should be handled asynchronously (background task / polling).
Root Cause (Likely)
The HTTP client timeout is set to 10 seconds, which is too low for:
Bitcoin RPC calls (especially scantxoutset, balance calculations)
Ethereum key export operations
Frontend timeout appears to be aligned with the same 10s limit, causing user-visible failures even though the backend eventually responds.