SOP — Fix “No such customer” Stripe error on Plan & Billing → Subscribe

Last updated: November 7, 2025

Applies to: All CS agents
Goal: Resolve Stripe error resource_missing → No such customer: 'cus_…' that blocks plan subscription.

Why this happens (plain English):
The workspace is trying to start a subscription in the customer’s Stripe account, but the stored customer_id belongs to a different Stripe account (often our platform’s Stripe). Result: Stripe can’t find that customer in the target account and throws “No such customer.” Synthflow supports connecting customer/agency Stripe accounts for plans and billing, so the correct customer_id must exist in the same Stripe account that receives the subscription call.


A. Confirm the symptom (30–90 seconds)

  1. Reproduce: Go to Plan & Billing in the customer’s workspace → click Subscribe.

  2. Capture the exact error payload popup (it will include something like code: "resource_missing" and message: "No such customer: 'cus_…'").

  3. Copy the request_log_url from the error (opens the exact event in Stripe, showing which Stripe account handled the request).


B. Identify the account mismatch (2–3 minutes)

  1. Open the Stripe log via request_log_url.

  2. In the Stripe log page, look at the Account (you’ll see an ID like acct_…). That’s the Stripe receiving the request (usually the customer’s/agency’s connected Stripe).

  3. Copy the failing customer_id (e.g., cus_RzD5l…).

  4. In that same Stripe account (acct_… from step 2), search for the customer_id.

    • If found: This SOP likely doesn’t apply—proceed to D. If the customer already exists but it still fails.

    • If NOT found: You’ve confirmed the classic mismatch (customer exists in a different Stripe account).

Tip: If you also have access to our platform Stripe, quickly search that cus_… there—you’ll usually find it. That confirms the mismatch root cause explained above.


C. Fix the mismatch by creating the customer in the correct Stripe account and updating the mapping (3–5 minutes)

You’ll do two things: (1) create a Stripe Customer in the target Stripe account; (2) tell our backend/UI to use this new customer_id.

  1. Create the customer in the target Stripe

    • In the Stripe account that handled the failed request (acct_… from B‑2), go to Customers → + New.

    • Create the customer with the same email used in the workspace (keep it minimal: email is enough).

    • Copy the newly created cus_… ID.

  2. Update the stored customer ID in Synthflow

    • In our admin/billing backend for that workspace (or the place where the email left_right_arrow emoji customer_id mapping lives), replace the old cus_… with the new one you just created for the correct Stripe account.

    • Save.

  3. Test

    • Return to Plan & Billing → click Subscribe again.

    • Expected: subscription initializes and billing activates for the selected plan.

Note: Synthflow’s billing/plan flows rely on the Stripe integration for managing customer and plans under the connected account; make sure you are aligning the customer_id with the same connected Stripe used for plan creation and subscription.


D. If the customer already exists in the correct Stripe but it still fails

Work through these quick checks:

  • Live vs Test mode: The cus_… might be in Test while the subscription call is in Live (or vice‑versa).

  • Wrong stored ID: Ensure the mapping in our backend uses the exact cus_… from the same mode and same account shown in the Stripe log.

  • Multiple customers with same email: Confirm you picked the right cus_… (the one in the same account receiving the request).

  • Plan/Price on a different account: If the price/product was created under a different Stripe account than the one receiving the call, escalate (see §G).

If none of the above resolves it → proceed to Level‑2 escalation.


E. Customer‑safe update you can paste in the ticket

Update: We identified a billing profile mismatch on the payment side. I’ve aligned your billing customer record and re‑initialized the subscription flow. Please try the Subscribe button again now. If anything looks off, I’m here to help right away.


F. Documentation & closure checklist

  • white_check_mark emoji Add an internal note to the ticket with:

    • Error snippet (code/message), the request_log_url, and the acct_… it targeted.

    • Old cus_… vs new cus_… and where they lived.

    • Final test result (Subscribe succeeded).

  • white_check_mark emoji If this scenario is likely to repeat, suggest a KB addition: “Creating/Aligning Stripe Customers for Connected Accounts.”

  • white_check_mark emoji If you created placeholder customer records in Stripe, make sure email is correct and PII practices are followed.