xtekky/gpt4free · error · ResponseError
Response: Something Went Wrong
Error message
Response: Something Went Wrong
What it means
MetaAI's streaming GraphQL response (doc_id 7783822248314888) returned a raw HTML error page containing '<h1>Something Went Wrong</h1>' instead of newline-delimited JSON. g4f detects that marker while iterating response.content and raises ResponseError, meaning the Meta AI endpoint rejected the request at the page level rather than returning a GraphQL payload.
Source
Thrown at g4f/Provider/needs_auth/MetaAI.py:136
"flashVideoRecapInput": {"images": []},
"flashPreviewInput": None,
"promptPrefix": None,
"entrypoint": "ABRA__CHAT__TEXT",
"icebreaker_type": "TEXT",
"__relay_internal__pv__AbraDebugDevOnlyrelayprovider": False,
"__relay_internal__pv__WebPixelRatiorelayprovider": 1,
}
),
"server_timestamps": "true",
"doc_id": "7783822248314888",
}
async with self.session.post(url, headers=headers, data=payload) as response:
await raise_for_status(response, "Fetch response failed")
last_snippet_len = 0
fetch_id = None
async for line in response.content:
if b"<h1>Something Went Wrong</h1>" in line:
raise ResponseError("Response: Something Went Wrong")
try:
json_line = json.loads(line)
except json.JSONDecodeError:
continue
if json_line.get("errors"):
raise RuntimeError(
"\n".join(
[error.get("message") for error in json_line.get("errors")]
)
)
bot_response_message = (
json_line.get("data", {})
.get("node", {})
.get("bot_response_message", {})
)
streaming_state = bot_response_message.get("streaming_state")
fetch_id = bot_response_message.get("fetch_id") or fetch_id
if streaming_state in ("STREAMING", "OVERALL_DONE"):View on GitHub (pinned to 973504e177)
Solutions
- Recreate the MetaAI instance so update_cookies() fetches fresh _js_datr/abra_csrf/datr cookies and LSD/DTSG tokens
- Route through a residential proxy (pass proxy=) — datacenter IPs often get the error page
- Retry after a cooldown if Meta is throttling the session
- Update g4f in case doc_id or payload fields changed
Example fix
// before
meta = MetaAI(proxy=proxy) # created once, reused for hours
resp = await meta.prompt('hi')
// after
# refresh session tokens before each batch
meta = MetaAI(proxy=proxy)
await meta.update_cookies()
resp = await meta.prompt('hi') Defensive patterns
Strategy: retry
Try / catch
from g4f.errors import ResponseError
for attempt in range(2):
try:
resp = await meta.prompt(msg)
break
except ResponseError as e:
if 'Something Went Wrong' in str(e) and attempt == 0:
await meta.update_cookies() # refresh tokens, retry once
else:
raise Prevention
- Call update_cookies() when reusing a MetaAI instance across long periods
- Use residential proxies for Meta endpoints
- Create a fresh MetaAI instance per batch job
When it happens
Trigger: Posting the payload to graph.meta.ai after update_cookies() succeeded, but the body streams the generic 'Something Went Wrong' page — typically due to invalid/expired LSD/DTSG tokens, session cookies flagged as bot traffic, or Meta-side throttling.
Common situations: Reusing a MetaAI instance long after cookies/tokens were fetched (tokens expire); datacenter IPs or proxies that Meta blocks; calling without a preceding update_cookies(); Meta A/B or downtime returning the error shell.
Related errors
- \n".join([error.get("message") for error in json_line.get("e
- Meta AI isn't available yet in your country
- Response: {text}
- The .har file is not valid
- No proof_token found in .har files
AI-assisted analysis of xtekky/gpt4free@973504e177 (2026-08-14).
Data as JSON: /api/errors/6682ae5e5cdc66e2.
Report an issue: GitHub.