Skip to main content

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, not BTCUSDT

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:

  1. Stop the bot (GridFlow cancels all open orders)
  2. 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 .env change: 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.