We suddenly started facing this outage. For the past week our whole Whatsapp communication is down. We have an outbound throughput of ~3k messages/day which all are failing. We tried to create new template, whatsapp account and even added a new number. Nothing worked. It is very difficult to reach out to Meta Support to get any developer help. Probably we might have to run an ad campaign on facebook/insta to get some attention I guess :)
{ "error": { "message": "(#135000) Generic user error", "type": "OAuthException", "code": 135000, "error_data": { "messaging_product": "whatsapp", "details": "Generic user error" }, "fbtrace_id": "ATOjiv6quaciqRzMUGNDDJh" } }

I think I did not get an accurate install number from Facebook Ads Manager reporting.
Is it because my iOS app doesn't implement ATT?
If yes, may I know is this the correct implementation?
The documentation regarding this isn't clear - https://developers.facebook.com/docs/app-events/guides/advertising-tracking-enabled
I was wondering, is this code snippet correct enough, so that I can get a more accurate reporting in my Facebook Ad Manager? Thank you.
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func requestTrackingPermission() {
if #available(iOS 14, *), #available(iOS 17, *) {
// For iOS 17 and later: ATT API is automatically used by Facebook SDK
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
print("ATT authorized: Tracking enabled automatically by Facebook SDK for iOS 17+.")

case .denied, .restricted:
print("ATT denied/restricted: Tracking disabled automatically by Facebook SDK for iOS 17+.")

case .notDetermined:
print("ATT not determined: No action, default to disabled.")

@unknown default:
print("ATT unknown status: No action, default to disabled.")
}
}
} else if #available(iOS 14, *) {
// For iOS 14 to iOS 16: Manually set Advertiser Tracking Enabled parameter
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
Settings.shared.isAdvertiserTrackingEnabled = true
print("ATT authorized: Tracking enabled.")

case .denied, .restricted:
Settings.shared.isAdvertiserTrackingEnabled = false
print("ATT denied/restricted: Tracking disabled.")

case .notDetermined:
Settings.shared.isAdvertiserTrackingEnabled = false
print("ATT not determined: Defaulting to tracking disabled.")

@unknown default:
Settings.shared.isAdvertiserTrackingEnabled = false
print("ATT unknown status: Defaulting to tracking disabled.")
}
}
}
}

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
////////////////////////////////////////////////////////////////////////////////////////////
/// FACEBOOK
////////////////////////////////////////////////////////////////////////////////////////////
///
// https://developers.facebook.com/docs/app-events/getting-started-app-events-ios
ApplicationDelegate.shared.application(
application,
didFinishLaunchingWithOptions: launchOptions
)

// Request Tracking Permission
requestTrackingPermission()

return true
}
}

I am trying to implement Facebook login for my application. It was working well in development mode, but when I try to switch to live mode I see this message:

Feature Unavailable

Facebook Login is currently unavailable for this app, since we are updating additional details for this app. Please try again later.

here is the exact error I get

I do not have any required actions in developer console.

I have searched for an answer, I have already set advanced access to email and public profile, and I got advanced access to other permissions as well. Business verification is complete and I have verified my Business as a tech provider as well.

Here is the code that handles the Facebook login (I am using Django framework):

def facebook_login(request):     facebook_auth_url = "https://www.facebook.com/v21.0/dialog/oauth"     if "test" in request.get_full_path():        redirect_uri = request.build_absolute_uri('/test/home/facebook_login/facebook_callback/')        redirect_uri = "http://localhost:8000/home/facebook_login/facebook_callback/"     else:         redirect_uri = request.build_absolute_uri('/home/facebook_login/facebook_callback/')     scopes = "pages_show_list,business_management,read_insights,ads_read,pages_read_engagement,ads_management"          state = generate_state()     request.session['oauth_state'] = state          params = {         'client_id': settings.META_APP_ID,         'redirect_uri': redirect_uri,         'scope': scopes,         'response_type': 'code',         'state': state,     }     auth_url = f"{facebook_auth_url}?{urlencode(params)}"     return JsonResponse({'authorization_url': auth_url}) def facebook_callback(request):     error = request.GET.get('error')     if error == 'access_denied':         prefix = 'test/' if os.getenv('PROD') == 'blue' else ''         cancel_redirect_url = (             "http://localhost/" + prefix + "#/home/connections"              if os.getenv('DEVELOPMENT') == 'True'              else "https://platform.webalyze.ai/" + prefix + "#/home/connections"         )         return redirect(cancel_redirect_url)          state = request.GET.get('state')     if state != request.session.pop('oauth_state', None):         return JsonResponse({'error': 'Invalid state parameter'}, status=400)     code = request.GET.get('code')     if not code:         return JsonResponse({'error': 'No code provided'}, status=400)     token_exchange_url = "https://graph.facebook.com/v21.0/oauth/access_token"     redirect_uri = request.build_absolute_uri(request.path)     print('REDIRECT (facebook_callback):', redirect_uri)     params = {         'client_id': settings.META_APP_ID,         'redirect_uri': redirect_uri,         'client_secret': settings.META_APP_SECRET,         'code': code,     }     response = requests.get(token_exchange_url, params=params)     data = response.json()     if 'access_token' in data:         access_token = data['access_token']         saveMetaTokenToDatabase(request.user, access_token)         prefix = 'test/' if os.getenv('PROD') == 'blue' else ''         if os.getenv('DEVELOPMENT') == 'True':             return redirect("http://localhost/" + prefix + "#/home/connections")         else:             return redirect("https://platform.webalyze.ai/" + prefix +"#/home/connections")     else:         return JsonResponse({'error': 'Failed to obtain access token'}, status=400) 

What am I missing so I can do this in live mode?

Issue: Getting 'Unsupported post request' error when accessing /accounts with WABA_ID despite having all required permissions:

  • whatsapp_business_messaging
  • whatsapp_business_management
  • Tech Provider verification
  • Full business verification

Error: 'Unsupported post request. Object with ID '[WABA_ID]' does not exist, cannot be loaded due to missing permissions.'

Tried:

  • New phone numbers
  • Fresh access tokens
  • Different WABA_IDs
  • Permission resets

Note: Can successfully send messages via API, but contacts API access fails. Request format appears correct, but permissions seem blocked despite having all verifications.

Meta support directs all technical issues to their Developer Forum, but the forum throws a ReactComponent error, making it inaccessible. Left without official support channels to resolve this.