[BUG] Meta Ads MCP integration app blocked after switching to Live mode
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Summary
The Meta Ads integration app used by Claude Code (app_id 1072294768675071, "Claude Code") became fully blocked from Graph API access after switching from Development to Live mode.
Timeline
- Read operations (insights, campaigns, adaccounts) worked fine via the long-lived user token in Development mode.
- Creating an adcreative (object_story_spec, page post) failed with: "O post do criativo dos anúncios foi criado por um app que está em modo de desenvolvimento. Ele deve estar em modo público para criar este anúncio." (error code 100, subcode 1885183) — implying Live mode was required.
- After switching the app to Live mode in the Meta for Developers dashboard, ALL Graph API calls (including previously-working reads like /me, /act_.../campaigns) started failing with: {"error":{"message":"API access blocked.","type":"OAuthException","code":200}}
- The app's own dashboard page (developers.facebook.com/apps/1072294768675071) now shows "Esse conteúdo não está mais disponível" / content not available, even for the account that had just toggled the mode.
Impact
Full loss of Meta Ads API access for this account — cannot read or write anything via the integration anymore. Existing live ad campaigns were paused as a precaution before this happened, so no ad spend is currently at risk, but the account is unable to use the Meta Ads MCP integration at all right now.
Token scopes for reference
ads_management, ads_read, ads_mcp_management, business_management, pages_manage_posts, pages_manage_ads, instagram_content_publish, developer_tools_mcp_app_management, manage_app_solution, and others.
Ask
- Please check whether app 1072294768675071 needs to be reverted to Development mode, or whether it requires App Review / Business Verification to safely support adcreative (page post) creation without breaking access for all users.
- If this is a shared integration app, individual users probably shouldn't have the ability to toggle its Live/Development mode at all — worth reviewing whether that control should be exposed.
What Should Happen?
Expected behavior
Creating ad creatives (object_story_spec / page posts) via the Meta Ads integration should work without requiring the shared integration app to be switched to Live mode — since toggling that setting caused a complete API lockout (all read and write calls started returning "API access blocked", error code 200) rather than just fixing the original issue.
Ideally:
- Admins/testers managing their own ad accounts should be able to create adcreatives while the app is in Development mode, the same way campaign/adset creation already works.
- If Live mode is genuinely required for this operation, switching to it should not break access to every other endpoint.
- If this is a shared app used by multiple Claude Code users (not one individual's own app), end users probably shouldn't have the ability to toggle its Development/Live mode at all, since it affects everyone using the integration, not just their own account.
Error Messages/Logs
Error before switching to Live mode:
{"error":{"message":"Invalid parameter","type":"OAuthException","code":100,"error_subcode":1885183,"error_user_title":"O post do criativo dos anúncios foi criada por um app que está em modo de desenvolvimento","error_user_msg":"O post do criativo dos anúncios foi criado por um app que está em modo de desenvolvimento. Ele deve estar em modo público para criar este anúncio."}}
Error after switching to Live mode (persists on ALL endpoints, including previously-working reads):
{"error":{"message":"API access blocked.","type":"OAuthException","code":200}}
Steps to Reproduce
- Connect Claude Code to a Meta Ads account via the Meta Ads MCP integration (long-lived user token, app_id 1072294768675071 "Claude Code").
- Use the integration to create a campaign, adset (both succeed), then attempt to create an adcreative with an object_story_spec (page post).
- Request fails with: "O post do criativo dos anúncios foi criado por um app que está em modo de desenvolvimento. Ele deve estar em modo público para criar este anúncio." (error code 100, subcode 1885183).
- Go to developers.facebook.com/apps/1072294768675071 and switch the app's mode from Development to Live.
- Retry any Graph API call through the same integration (even a simple read like /me or /act_.../campaigns).
- All calls now fail with: {"error":{"message":"API access blocked.","type":"OAuthException","code":200}} — including calls that worked before step 4.
- The app's own dashboard page (developers.facebook.com/apps/1072294768675071) becomes inaccessible, showing "This content isn't available right now."
Claude Model
None
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
2.1.247
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
_No response_