MaxRetryError: Maximum Retries Exceeded

urllib3.exceptions.MaxRetryError: Max retries exceeded

Quick Answer

The HTTP request failed after all retry attempts. Check the 'Caused by' section for the root cause (DNS, SSL, timeout).

Why This Happens

urllib3 retries failed connections up to a limit. When all retries are exhausted, it raises MaxRetryError. The underlying cause is usually a ConnectionError, TimeoutError, or SSLError.

The Problem

import requests
response = requests.get('https://nonexistent-api.example.com')

The Fix

import requests
from requests.adapters import HTTPAdapter, Retry

session = requests.Session()
retries = Retry(total=3, backoff_factor=1, status_forcelist=[500, 502, 503])
session.mount('https://', HTTPAdapter(max_retries=retries))

try:
    response = session.get('https://api.example.com', timeout=10)
except requests.exceptions.ConnectionError as e:
    print(f'Failed: {e}')

Step-by-Step Fix

  1. 1

    Check the root cause

    Look at 'Caused by' in the error.

  2. 2

    Configure retry strategy

    Use Retry with exponential backoff.

  3. 3

    Verify the URL

    Check URL, DNS, and server availability.

Bugsly catches this automatically

Bugsly's AI analyzes this error pattern in real-time, explains what went wrong in plain English, and suggests the exact fix — before your users even report it.

Try Bugsly free