Skip to main content
Comprehensive guide to diagnosing and fixing issues with Floppydata proxies.

Quick error lookup

407 Auth Failed

Wrong credentials

403 Forbidden

IP whitelist or access issue

429 Rate Limit

Too many requests

502 Bad Gateway

Target site issue

504 Timeout

Request took too long

Connection Error

Can’t connect to proxy

HTTP error codes

407 Proxy Authentication Required

What it means: Your credentials are incorrect or missing
  • Wrong username or password
  • Credentials not properly formatted
  • Extra spaces in credentials
  • Password changed in dashboard but not updated in code
  • Special characters not URL-encoded
1. Verify credentials in dashboardGo to Dashboard → Settings and copy fresh credentials2. Check for extra spaces
# Wrong - extra space
proxy = "http://user 123:pass@geo.g-w.info:10080"

# Correct
proxy = "http://user123:pass@geo.g-w.info:10080"
3. URL-encode special characters
from urllib.parse import quote

password = "my@pass#word"
encoded_pass = quote(password)  # "my%40pass%23word"
proxy = f"http://user:{encoded_pass}@geo.g-w.info:10080"
4. Test with curl
curl -x http://USERNAME:PASSWORD@geo.g-w.info:10080 http://ip-api.com/json

403 Forbidden

What it means: Access denied to the resource
  • IP whitelist enabled but your IP not added
  • Insufficient balance
  • Target website blocking proxy IP
  • Country/city not available in your plan
  • Proxy type not allowed for your account
1. Check IP whitelistIf IP whitelisting is enabled:
  • Get your current IP: curl https://api.ipify.org
  • Add it in Dashboard → Settings → IP Whitelist
2. Check balance
curl -H "X-Api-Key: YOUR_KEY" \
  https://api.floppydata.net/v1/rotating/balance
3. Try different proxy parameters
# If city fails, try country only
proxy_username = "user123-type-residential-country-US"  # Instead of city

# Try different proxy type
proxy_username = "user123-type-mobile-country-US"  # Mobile instead of residential
4. Check target websiteSome sites block all proxies. Try:
  • Different session ID (new IP)
  • Different proxy type
  • Web Unlocker instead

429 Too Many Requests

What it means: Rate limit exceeded
  • Too many concurrent requests
  • Requests sent too quickly
  • Target website rate limiting
  • Exceeding plan limits
1. Add delays between requests
import time

for url in urls:
    response = requests.get(url, proxies=proxies)
    time.sleep(1)  # Add 1 second delay
2. Implement exponential backoff
import time

def make_request_with_backoff(url, proxies, max_retries=3):
    for attempt in range(max_retries):
        try:
            response = requests.get(url, proxies=proxies)
            if response.status_code == 429:
                wait_time = 2 ** attempt  # 1, 2, 4 seconds
                time.sleep(wait_time)
                continue
            return response
        except Exception as e:
            if attempt == max_retries - 1:
                raise
            time.sleep(2 ** attempt)
3. Use rotating sessions
# Distribute load across multiple sessions
session_ids = ['s01', 's02', 's03', 's04', 's05']

for i, url in enumerate(urls):
    session = session_ids[i % len(session_ids)]
    proxy_username = f"user123-type-residential-country-US-session-{session}"
    # ... make request
4. Check concurrent requestsReduce number of parallel requests if using async/threading

502 Bad Gateway

What it means: Target server returned invalid response
  • Target website is down
  • Target blocking proxy IPs
  • Network issue between proxy and target
  • Target website maintenance
1. Verify target site is upCheck if the website works in your browser without proxy2. Try different proxy type
# If residential fails, try mobile
proxy_username = "user123-type-mobile-country-US"

# Or datacenter
proxy_username = "user123-type-datacenter-country-US"
3. Use session parameter
# Try sticky session
proxy_username = "user123-type-residential-country-US-session-retry01"
4. Consider Web UnlockerFor protected sites, use Web Unlocker API instead:
response = requests.post(
    'https://api.floppydata.net/v1/webUnlocker',
    headers={'X-Api-Key': 'YOUR_KEY'},
    json={'url': 'https://protected-site.com'}
)

504 Gateway Timeout

What it means: Request took too long to complete
  • Target website slow to respond
  • Network congestion
  • Complex page rendering
  • Timeout set too low
  • Slow proxy location
1. Increase timeout
response = requests.get(
    url,
    proxies=proxies,
    timeout=60  # Increase from default 30
)
2. Try different proxy location
# If targeting US site, use US proxy
proxy_username = "user123-type-residential-country-US"

# Choose location closer to target
3. Use datacenter for speed
# Datacenter proxies are faster
proxy_username = "user123-type-datacenter-country-US"
4. Set separate connect and read timeouts
response = requests.get(
    url,
    proxies=proxies,
    timeout=(10, 60)  # (connect_timeout, read_timeout)
)

Connection errors

Connection Refused

What it means: Can’t connect to proxy server
  • Wrong host or port
  • Firewall blocking connection
  • Network issue
  • Typo in proxy URL
1. Verify host and port
# Correct
proxy = "http://user:pass@geo.g-w.info:10080"

# Wrong - don't use these
# geo.g-w.com (wrong domain)
# floppydata.com (wrong domain)
# port 8080 (wrong port)
2. Check available ports
  • HTTP: 10080
  • HTTPS: 10443
  • SOCKS5: 10800
3. Test connectivity
# Test if port is reachable
telnet geo.g-w.info 10080

# Or use curl
curl -v http://geo.g-w.info:10080
4. Check firewallEnsure your firewall allows outbound connections on port 10080

SSL Certificate Error

What it means: SSL verification failed
Temporary fix (not recommended for production):
response = requests.get(
    url,
    proxies=proxies,
    verify=False  # Disable SSL verification
)
Better solution:
# Update certificates
pip install --upgrade certifi

# Or specify certificate bundle
response = requests.get(
    url,
    proxies=proxies,
    verify='/path/to/cacert.pem'
)

Target website errors

Captcha / Challenge

What it means: Target detected automation
1. Use residential or mobile proxies
# Higher trust level
proxy_username = "user123-type-mobile-country-US"
2. Add realistic headers
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.9',
    'Accept-Encoding': 'gzip, deflate, br',
    'DNT': '1',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1'
}

response = requests.get(url, proxies=proxies, headers=headers)
3. Add delays
import time
import random

time.sleep(random.uniform(1, 3))  # Random delay
4. Use Web UnlockerWeb Unlocker automatically handles captchas:
response = requests.post(
    'https://api.floppydata.net/v1/webUnlocker',
    headers={'X-Api-Key': 'YOUR_KEY'},
    json={
        'url': 'https://protected-site.com',
        'render_js': True
    }
)

IP Blocked

Signs: 403 errors, blank pages, infinite redirects
1. Force per-request rotation
# Use rotation--1 in the username, or rotation=-1 in the builder API
proxy_username = "user123-type-residential-country-US-rotation--1"
2. Try different proxy type
# Mobile has higher trust
proxy_username = "user123-type-mobile-country-US"
3. Add delays between requests
import time

for url in urls:
    response = requests.get(url, proxies=proxies)
    time.sleep(random.uniform(2, 5))
4. Use different sessions
# Rotate through multiple sessions
for i, url in enumerate(urls):
    session_id = f"session{i % 10}"
    proxy_username = f"user123-type-residential-country-US-session-{session_id}"
    # ... make request

Session issues

Session Keeps Expiring

Sessions expire after 10 minutes of inactivity
1. Send keepalive requests
import time
import threading

def keepalive(session_url, proxies):
    while True:
        try:
            requests.head('https://httpbin.org/status/200', proxies=proxies, timeout=5)
        except:
            pass
        time.sleep(300)  # Every 5 minutes

# Start keepalive thread
proxies = {'http': session_url, 'https': session_url}
thread = threading.Thread(target=keepalive, args=(session_url, proxies))
thread.daemon = True
thread.start()
2. Use a static IP insteadFor long-running sessions, use a static IP returned by the Static IP List endpoint:
curl -H "X-Api-Key: YOUR_KEY" \
  https://api.floppydata.net/v1/static/list

IP Not Changing

You’re using a session parameter
1. Remove session parameter
# From this
proxy_username = "user123-type-residential-country-US-session-s01"

# To this
proxy_username = "user123-type-residential-country-US"
2. Change session value
# Change session ID to get new IP
proxy_username = "user123-type-residential-country-US-session-s02"  # New IP
3. Force rotation
proxy_username = "user123-type-residential-country-US-rotation--1"

Performance issues

Slow Requests

1. Use datacenter proxies
# Faster but lower trust
proxy_username = "user123-type-datacenter-country-US"
2. Use closer proxy location
# If scraping US site, use US proxy
proxy_username = "user123-type-residential-country-US"
3. Implement connection pooling
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

session = requests.Session()

# Connection pooling
adapter = HTTPAdapter(
    pool_connections=10,
    pool_maxsize=20,
    max_retries=Retry(total=3, backoff_factor=1)
)

session.mount('http://', adapter)
session.mount('https://', adapter)
session.proxies = proxies

# Reuse connection
for url in urls:
    response = session.get(url)
4. Use async requests
import asyncio
import aiohttp

async def fetch(session, url, proxy):
    async with session.get(url, proxy=proxy) as response:
        return await response.text()

async def main(urls, proxy):
    async with aiohttp.ClientSession() as session:
        tasks = [fetch(session, url, proxy) for url in urls]
        return await asyncio.gather(*tasks)

asyncio.run(main(urls, proxy_url))

Debugging tools

Test proxy connection

# Simple test
curl -x http://USERNAME:PASSWORD@geo.g-w.info:10080 http://ip-api.com/json
 
# With verbose output
curl -v -x http://USERNAME:PASSWORD@geo.g-w.info:10080 http://ip-api.com/json
 
# Test specific site
curl -x http://USERNAME:PASSWORD@geo.g-w.info:10080 https://example.com

Check proxy IP

import requests
 
proxies = {'http': proxy_url, 'https': proxy_url}
 
# Check what IP you're using
response = requests.get('http://ip-api.com/json', proxies=proxies)
data = response.json()
 
print(f"IP: {data['query']}")
print(f"Country: {data['country']}")
print(f"City: {data['city']}")
print(f"ISP: {data['isp']}")

Enable logging

import logging
import http.client as http_client
 
# Enable debug logging
http_client.HTTPConnection.debuglevel = 1
 
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True
 
# Now make requests - you'll see all details
response = requests.get(url, proxies=proxies)

Validate via API

curl -X POST \
  -H "X-Api-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "connectionString": "http://user-type-residential-country-US:pass@geo.g-w.info:10080"
  }' \
  https://api.floppydata.net/v1/tools/checkProxy

FAQ

Via API:
curl -H "X-Api-Key: YOUR_KEY" \
  https://api.floppydata.net/v1/rotating/balance
Via Dashboard: app.floppydata.com
  • HTTP: 10080 (default, recommended)
  • HTTPS: 10443
  • SOCKS5: 10800
Most tools work with port 10080.
Yes! The session is tied to the session ID in the username, not to your device.
# Same session = same IP across devices
proxy_username = "user123-type-residential-country-US-session-shared01"
Speed depends on:
  • Proxy type: Datacenter > Residential > Mobile
  • Location: Closer proxy = faster
  • Network congestion: Varies by time
  • Target website: Some sites are just slow
For best speed, use datacenter proxies in the same region as target.
Depends on your plan. Check limits:
curl -H "X-Api-Key: YOUR_KEY" \
  https://api.floppydata.net/v1/rotating/statistics
Or contact support for custom limits.
Yes, in Dashboard → Settings → IP WhitelistWhen enabled, only whitelisted IPs can use your proxies.
rotation—1 means rotation=-1 in the builder API:
  • New IP every request
  • Best for broad scraping where identity stability is not needed
rotation-0 means rotation=0 in the builder API:
  • Keep the same IP within a session
  • Best for login, checkout, or other multi-step flows

Getting help

Check API status

See if there are any ongoing issues

Contact support

Email: support@floppydata.comResponse time: < 24 hours

Dashboard

Check balance, usage, and settings

API Reference

Complete API documentation
When contacting support, include:
  • Error message or code
  • Your code snippet (remove credentials!)
  • Timestamp when error occurred
  • Expected vs actual behavior