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

  1. Recreate the MetaAI instance so update_cookies() fetches fresh _js_datr/abra_csrf/datr cookies and LSD/DTSG tokens
  2. Route through a residential proxy (pass proxy=) — datacenter IPs often get the error page
  3. Retry after a cooldown if Meta is throttling the session
  4. 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

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


AI-assisted analysis of xtekky/gpt4free@973504e177 (2026-08-14). Data as JSON: /api/errors/6682ae5e5cdc66e2. Report an issue: GitHub.