{"record":{"id":"6682ae5e5cdc66e2","repo":"xtekky/gpt4free","slug":"response-something-went-wrong","errorCode":null,"errorMessage":"Response: Something Went Wrong","messagePattern":"Response: Something Went Wrong","errorType":"exception","errorClass":"ResponseError","httpStatus":null,"severity":"error","filePath":"g4f/Provider/needs_auth/MetaAI.py","lineNumber":136,"sourceCode":"                    \"flashVideoRecapInput\": {\"images\": []},\n                    \"flashPreviewInput\": None,\n                    \"promptPrefix\": None,\n                    \"entrypoint\": \"ABRA__CHAT__TEXT\",\n                    \"icebreaker_type\": \"TEXT\",\n                    \"__relay_internal__pv__AbraDebugDevOnlyrelayprovider\": False,\n                    \"__relay_internal__pv__WebPixelRatiorelayprovider\": 1,\n                }\n            ),\n            \"server_timestamps\": \"true\",\n            \"doc_id\": \"7783822248314888\",\n        }\n        async with self.session.post(url, headers=headers, data=payload) as response:\n            await raise_for_status(response, \"Fetch response failed\")\n            last_snippet_len = 0\n            fetch_id = None\n            async for line in response.content:\n                if b\"<h1>Something Went Wrong</h1>\" in line:\n                    raise ResponseError(\"Response: Something Went Wrong\")\n                try:\n                    json_line = json.loads(line)\n                except json.JSONDecodeError:\n                    continue\n                if json_line.get(\"errors\"):\n                    raise RuntimeError(\n                        \"\\n\".join(\n                            [error.get(\"message\") for error in json_line.get(\"errors\")]\n                        )\n                    )\n                bot_response_message = (\n                    json_line.get(\"data\", {})\n                    .get(\"node\", {})\n                    .get(\"bot_response_message\", {})\n                )\n                streaming_state = bot_response_message.get(\"streaming_state\")\n                fetch_id = bot_response_message.get(\"fetch_id\") or fetch_id\n                if streaming_state in (\"STREAMING\", \"OVERALL_DONE\"):","sourceCodeStart":118,"sourceCodeEnd":154,"githubUrl":"https://github.com/xtekky/gpt4free/blob/973504e1770928ed5fb82f43da528f441ad9ddc3/g4f/Provider/needs_auth/MetaAI.py#L118-L154","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\nmeta = MetaAI(proxy=proxy)  # created once, reused for hours\nresp = await meta.prompt('hi')\n\n// after\n# refresh session tokens before each batch\nmeta = MetaAI(proxy=proxy)\nawait meta.update_cookies()\nresp = await meta.prompt('hi')","handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"from g4f.errors import ResponseError\nfor attempt in range(2):\n    try:\n        resp = await meta.prompt(msg)\n        break\n    except ResponseError as e:\n        if 'Something Went Wrong' in str(e) and attempt == 0:\n            await meta.update_cookies()  # refresh tokens, retry once\n        else:\n            raise","preventionTips":["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"],"tags":["metaai","response-format","session-expiry","bot-detection"],"backgroundTag":null,"analyzedSha":"973504e1770928ed5fb82f43da528f441ad9ddc3","analyzedAt":"2026-08-14T23:45:32.408Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}