browser-use/browser-use · error · CloudBrowserAuthError
Access forbidden. Please check your browser-use cloud subscr
Error message
Access forbidden. Please check your browser-use cloud subscription status.
What it means
Cloud browser creation returned HTTP 403: authentication succeeded but the account is not entitled to the requested operation — subscription inactive/lapsed, plan limits, or a feature (e.g. cloud profiles, specific proxy regions) not included in the plan. Distinct from 401 (bad credentials); this is an authorization/entitlement failure.
Source
Thrown at browser_use/browser/cloud/cloud.py:73
)
headers = {'X-Browser-Use-API-Key': api_token, 'Content-Type': 'application/json', **(extra_headers or {})}
# Convert request to dictionary and exclude unset fields
request_body = request.model_dump(exclude_unset=True)
try:
logger.info('🌤️ Creating cloud browser instance...')
response = await self.client.post(url, headers=headers, json=request_body)
if response.status_code == 401:
raise CloudBrowserAuthError(
'BROWSER_USE_API_KEY is invalid. Get a new key at:\n'
'https://cloud.browser-use.com/new-api-key?utm_source=oss&utm_medium=use_cloud'
)
elif response.status_code == 403:
raise CloudBrowserAuthError('Access forbidden. Please check your browser-use cloud subscription status.')
elif not response.is_success:
error_msg = f'Failed to create cloud browser: HTTP {response.status_code}'
try:
error_data = response.json()
if 'detail' in error_data:
error_msg += f' - {error_data["detail"]}'
except Exception:
pass
raise CloudBrowserError(error_msg)
browser_data = response.json()
browser_response = CloudBrowserResponse(**browser_data)
# Store session ID for cleanup
self.current_session_id = browser_response.id
logger.info(f'🌤️ Cloud browser created successfully: {browser_response.id}')
logger.debug(f'🌤️ CDP URL: {browser_response.cdpUrl}')View on GitHub (pinned to 6c73fced2f)
Solutions
- Check subscription status in the browser-use cloud dashboard and reactivate/upgrade if lapsed.
- Lower request scope to plan limits (e.g. `cloud_timeout=15` on free tier, standard proxy regions).
- Confirm the key belongs to the account/workspace that owns the profile or feature being requested.
Example fix
# before browser = Browser(use_cloud=True, cloud_timeout=60) # free tier max is 15 -> 403 # after browser = Browser(use_cloud=True, cloud_timeout=15)
Defensive patterns
Strategy: try-catch
Validate before calling
# Stay within plan limits up front cloud_timeout = 15 # free-tier max; raise only with a paid plan browser = Browser(use_cloud=True, cloud_timeout=cloud_timeout)
Try / catch
from browser_use.browser.cloud.cloud import CloudBrowserAuthError
try:
browser = Browser(use_cloud=True)
except CloudBrowserAuthError as e:
if 'forbidden' in str(e).lower():
logger.error('403: check subscription/entitlement in the cloud dashboard before retrying')
raise Prevention
- Verify subscription status and feature entitlements in the dashboard before shipping cloud features.
- Keep request parameters (timeout, proxy regions, profiles) within your plan's documented limits.
- Distinguish 401 (fix the key) from 403 (fix the account) in your error handling.
When it happens
Trigger: `Browser(use_cloud=True)` or `cloud_profile_id=...` while the account has no active cloud subscription; requesting paid features (long `cloud_timeout`, premium proxy country) on a free plan; team key without permission for the target project/profile.
Common situations: Trial expired between runs; billing lapsed; using a colleague's key scoped to a different workspace; free-tier `cloud_timeout` above the 15-minute maximum.
Understand the failure class
- Authentication and authorization failures — expired tokens, bad credentials, and missing scopes.
Related errors
- BROWSER_USE_API_KEY is not set. To use cloud browsers, get a
- BROWSER_USE_API_KEY is invalid. Get a new key at: https://cl
- Failed to create cloud browser: HTTP {response.status_code}
- Timeout while creating cloud browser. Please try again.
- Failed to connect to cloud browser service. Please check you
AI-assisted analysis of browser-use/browser-use@6c73fced2f (2026-08-14).
Data as JSON: /api/errors/59a3ac8b195e9731.
Report an issue: GitHub.