## TL;DR

Set idle_timeout low (30s) on geo jobs since each region holds its own session, and stop sessions in a finally block or you stack up billing. For geo-targeted scraping on Anchor Browser, pass the country as a lowercase ISO code: anchor.sessions.create(proxy={'active': True, 'country_code': 'de'}, ...).

## Fix

1. Set idle_timeout low (30s) on geo jobs since each region holds its own session, and stop sessions in a finally block or you stack up billing.
   Expected: You get the expected result; the problem is gone.

## When to use

- You are dealing with this situation.
- The symptom matches: Anchor Browser geo routing uses lowercase country_code - each session gets its own residential IP.

## When NOT to use

- Unrelated issues with a different cause.
- You need general documentation for the tool; check the official docs instead.

## Compatibility

Reported per the linked source. Source: https://anchorbrowser.io/blog/geo-targeted-price-monitoring-anchor-vpn-python.

## Variant phrasings

### Anchor Browser geo routing uses lowercase country_code - each session gets its own residential IP

## Why it happens

Official Anchor Browser blog (Geo-Targeted Price Monitoring): set country_code to any ISO 3166-1 alpha-2 code and Anchor routes the session through a residential IP in that country - the worked example uses lowercase codes (REGIONS = ['us', 'de', 'au', 'gb', 'sg']) passed as proxy={'active': True, 'country_code': country_code}. Each parallel session gets its own isolated context, IP, and fingerprint via asyncio.gather, so geo comparison jobs look like separate visitors.

## Edge cases

- If your error message differs even slightly, this is probably a different issue; search the exact text.
- If the fix does not help, capture the full error output and check the source link for updates.

## Source

https://anchorbrowser.io/blog/geo-targeted-price-monitoring-anchor-vpn-python