Panniantong/Agent-Reach · error · ValueError
Automatic full-domain extraction is disabled for {spec['name
Error message
Automatic full-domain extraction is disabled for {spec['name']}. What it means
Raised by extract_all() in agent_reach/cookie_extract.py when the resolved PlatformSpec has cookies=None, meaning the platform's spec deliberately disables whole-domain cookie harvesting. Only platforms with an explicit cookie-name list can be auto-extracted; for others the extraction backend would have to slurp every cookie, which the project forbids.
Source
Thrown at agent_reach/cookie_extract.py:235
The legacy function name is retained for API compatibility, but an
all-platform read is intentionally no longer supported.
Returns:
{"xueqiu": {"xq_a_token": "xxx"}}
"""
spec = _platform_spec(platform)
_require_browser_extractable(spec)
browser = browser.lower()
if browser not in SUPPORTED_BROWSERS:
raise ValueError(
f"Unsupported browser: {scrub_url_credentials(browser)}. "
f"Supported: {', '.join(SUPPORTED_BROWSERS)}"
)
cookie_file = _profile_cookie_file(browser, profile) if profile else None
needed_cookies = spec["cookies"]
if needed_cookies is None:
raise ValueError(
f"Automatic full-domain extraction is disabled for {spec['name']}."
)
# Try rookiepy first (Rust-based, more stable), fallback to browser_cookie3
use_rookiepy = False
if cookie_file is None:
try:
import rookiepy
use_rookiepy = True
except ImportError:
pass
if not use_rookiepy:
try:
import browser_cookie3
except ImportError:
profile_hint = (
f" for profile '{scrub_url_credentials(profile)}'"
if profile is not NoneView on GitHub (pinned to 93ae1d18c3)
Solutions
- Give the platform spec an explicit tuple of required cookie names so only those are read
- Use the manual Cookie-Editor export flow instead of automatic extraction for that platform
- Prefer bilibili/xueqiu for automatic extraction — their specs define cookie lists
Example fix
# before (spec definition)
{'config_key': 'foo', 'name': 'Foo', 'domains': ('foo.com',), 'cookies': None}
# after
{'config_key': 'foo', 'name': 'Foo', 'domains': ('foo.com',), 'cookies': ('session', 'token')} Defensive patterns
Strategy: validation
Validate before calling
spec = _PLATFORM_SPECS_BY_KEY[platform.lower()]
if spec.get('cookies') is None:
raise ValueError(f'{spec["name"]} cannot be auto-extracted; use Cookie-Editor') Type guard
def has_cookie_list(spec) -> bool:
return spec.get('cookies') is not None Try / catch
try:
extract_all(browser=b, platform=p)
except ValueError as e:
if 'full-domain extraction is disabled' in str(e):
run_cookie_editor_flow(p)
else:
raise Prevention
- When adding a platform spec, always define the 'cookies' tuple
- Only bilibili/xueqiu are intended for automatic extraction
When it happens
Trigger: A PlatformSpec whose 'cookies' field is None reaching the needed_cookies check — i.e. a platform added to PLATFORM_SPECS without a concrete cookie list (twitter/xhs are additionally blocked earlier by _require_browser_extractable).
Common situations: Extending PLATFORM_SPECS with a new platform and forgetting the 'cookies' tuple; custom forks that loosen the Cookie-Editor-only policy but skip defining which cookies matter.
Related errors
- Automatic browser extraction is disabled for {spec['name']}.
- agent-reach configure: error: {scrub_url_credentials(exc)}
- No cookies found. Make sure you're logged into the platforms
- [X] Could not find auth_token and ct0 in your input.
- Profile selection is supported only for {', '.join(PROFILE_S
AI-assisted analysis of Panniantong/Agent-Reach@93ae1d18c3 (2026-08-14).
Data as JSON: /api/errors/084ec9fa46e33c40.
Report an issue: GitHub.