When a seller account, ad account, or social profile gets restricted, teams panic and make it worse — re-login loops, shared IP reuse, automated appeals. This runbook is the **first 60 minutes** after a ban signal on any platform using Multilogin (web) and cloud phone (mobile).

Phase 0 — Stop the bleed (0–5 min)

  1. Pause automation — drain mlx:jobs queue for affected client_id
  2. Release leases — no new CDP attach on burned profiles
  3. Tag CMDBban_status=suspect → confirm → burned
  4. Move profile poolsync to burn tier
  5. Alert ops — Slack with job_id, platform, profile_id, device_id

Phase 1 — Triage: web vs mobile vs both

SignalLikely layerFirst check
Seller Central 403 / verification loopWeb (Multilogin)Proxy ASN change, fingerprint drift
TikTok app shadowban / device trustMobile (cloud phone)Emulator flag, IP geo mismatch
Both restricted same dayLinkageShared IP, cookie export, same staff VPN
Multiple accounts same clientAgency contaminationProxy pool reuse, workspace bleed

Phase 2 — CMDB audit checklist

account_id: ...
mlx_profile_id: uuid-...     # web layer
cloud_device_id: ...         # mobile layer
web_proxy: us-isp-sticky-44  # last 7 days stable?
mobile_proxy: us-mobile-07  # same country, different endpoint?
geo: US
last_cookie_export: never    # red flag if yes
staff_vpn_used: false
linked_accounts: [shop_b, shop_c]  # any also suspect?

Hybrid architecture reference: hybrid CMDB · VI: bản tiếng Việt.

Phase 3 — Platform-specific notes

PlatformCommon causeRecovery path
AmazonIP reputation, linked entitiesHuman appeal only; new sticky ISP; never auto-submit
eBayManaged payments geo jumpStop automation; manual case via Seller Hub
EtsyStar Seller SLA + IP shareAudit cross-listing CMDB proxy assignments
TikTok ShopApp/web layer mixSeparate re-warm; see TikTok ban checklist in guide
Shopee/LazadaStaff VPN vs shop geoReplace VN/SEA sticky proxy; human KYC
Mercado LibreLATAM geo mismatchCountry-matched proxy; Mercado Pago manual only
AllegroPL/EU geo jumpPL sticky proxy; human appeal only
Meta adsBM linkage, fingerprintRun fingerprint audit; do not create new BM on same IP

Phase 4 — Technical forensics

  1. Fingerprint audit — diff manifest vs last known good
  2. Profile debug — zombie Mimic, orphan CDP
  3. Proxy history — did sticky session ID rotate mid-week?
  4. DLQ review — ban-class jobs in last 48h
  5. Metrics — ban_rate spike before incident

Phase 5 — Recovery decision tree

Suspect (not confirmed ban)
  → keep in warm tier, human login test, no automation 7 days

Confirmed restriction, single account
  → burn profile + device in pool
  → new proxy session ID (never reuse burned IP)
  → new profile OR clone with new proxy (human warm 14 days)
  → human appeal if platform allows

Cluster ban (3+ accounts same client_id)
  → STOP all accounts under client
  → audit agency workspace separation
  → review shared proxy provider / staff access
  → executive review before any re-launch

What never to automate

Automation hooks (post-incident)

# DLQ ban class → auto burn (from dlq-handler recipe)
if error_class == "ban":
    sync_pool(profile_id, tier, "burned")
    notify_slack(...)
    # NO auto-replay

Related

Disclosure: MLX-MMO affiliated with Multilogin. Platform policies vary — this runbook is technical ops guidance, not legal advice.