Troubleshooting
Dashboard won't load
Check if the containers are running:
cd /root/gridflow
docker compose ps
Both gridflow_backend and gridflow_db should show Up. If not:
docker compose up -d
docker compose logs backend
Check the port isn't blocked:
Your VPS firewall (UFW) should allow port 80. If you're accessing via IP directly:
ufw allow 80
"Invalid license key" error
- Make sure you copied the full key with no extra spaces
- Keys are case-insensitive, but must be the correct format
- If the key was already activated on another account, it cannot be reused — contact support
Bot stuck at "initializing"
This usually means the Binance API call failed. Check the logs:
docker compose logs -f backend
Common causes:
- Invalid API key — double-check you copied the key and secret correctly
- IP restriction — if you restricted the key to a specific IP on Binance, make sure the VPS IP is whitelisted
- Insufficient balance — you need enough USDT in Spot to cover the orders
- Symbol not supported — use standard format like
BTC/USDT, notBTCUSDT
Orders aren't filling
This isn't a GridFlow issue — it means the market price hasn't reached your grid levels. The bot places limit orders; they fill when Binance executes them.
If the price has moved outside your grid range entirely:
- Stop the bot (GridFlow cancels all open orders)
- Create a new bot with an adjusted price range centered on the current price
Bot shows "error" status
Check logs for the specific error:
docker compose logs backend | grep "ERROR"
Common causes:
- Binance API rate limit exceeded (too many bots running simultaneously)
- Network timeout connecting to Binance
- Exchange maintenance
The scheduler retries automatically. If it persists, stop and restart the bot.
I can't log in to the dashboard
If you forgot your password, there's currently no self-service reset. You can reset it manually via the database:
docker compose exec backend python3 -c "
from database import SessionLocal
from models import User
import auth
db = SessionLocal()
user = db.query(User).filter(User.email == 'your@email.com').first()
user.password_hash = auth.hash_password('newpassword123')
db.commit()
print('Password reset')
"
Telegram / LINE notifications not working
- Verify the bot token or LINE credentials are correctly set in
.env - Restart the backend after any
.envchange:docker compose restart backend - For LINE: confirm the webhook URL is verified in the LINE console
- Send a test message from Settings → Notifications → Send test
- Check logs for notification errors:
docker compose logs backend | grep -i notif
Update GridFlow
cd /root/gridflow
docker compose down
# (replace the gridflow binary with the new version)
docker compose up -d --build
Still stuck? Email support@gridflowbot.com with the output of docker compose logs backend.