Jump to
↵select↑↓navigateescclose

Limitations and troubleshooting

What Automated Subscriptions does not do, and the messages it raises or logs, with their cause and fix.

Updated
On this page

Limitations

  • Customer subscriptions only. Supplier (purchase) subscriptions are never anchored, consolidated or credited, and raise no Payment Requests.

  • Month and year plans only, for anchors. Day and Week plans, plans priced by Monthly Rate, and, when the customer is billed yearly, monthly plans whose Billing Interval Count does not divide 12 cannot be anchored. Follow Calendar Months cannot be combined with an anchor. See What cannot be anchored.

  • No Pricing Rules on anchored invoices. The invoices the engine makes for an anchored customer ignore Pricing Rules, so customer-specific pricing has to be on the plan.

  • One gateway per invoice. A consolidated invoice whose plans point to different payment gateways is not charged automatically.

  • Backdated start dates are limited. For anchored and consolidating customers, start dates too far in the past are refused; load such subscriptions as an import and replay the periods. See Backdated start dates.

  • One period per run. A consolidating customer's subscription that is more than one period behind is billed one period per daily run.

  • No credit for postpaid subscriptions. A subscription billed at the end of the period gets ERPNext's invoice for the days used when it is cancelled, not a Credit Note.

  • No gateway refunds. A Credit Note leaves the credit with the customer. Refunding it through the gateway is up to you.

  • No settlement from GoCardless. With the stock Frappe Payments app, GoCardless charges the mandate but does not mark the invoice paid: its webhooks handle mandate events only. Make the Payment Entry for a collected payment by hand, or use a Payments build that handles payment events.

  • Duplicate lines. Two lines with the same item and description cannot share a consolidated invoice unless Selling Settings allows an item more than once. Give each subscription its own Service Identifier.

  • No app-wide payment delay. When a payment is collected comes from Days Until Due on each Subscription. Earlier versions had an Auto-billing Delay setting that nothing read; bench migrate removes it.

Troubleshooting

Messages in a dialog stop the save or action that raised them. Messages from the daily run, a Process Subscription or a background job appear in the Error Log instead: the daily run writes them under ERPNext's title "Subscription failed", or under the titles below.

Payment Requests

Message or Error Log titleCauseFix
No Payment Request after an invoice is submittedNo plan on the invoice has a Payment Gateway, the invoice is a return or has nothing outstanding, or the kill switch is set.Set Payment Gateway on the plan, or remove subscription_auto_charge_disabled from the site configuration. Raise the request for this invoice by hand.
"Mixed payment gateways on subscription invoice <INVOICE>"The plans on the invoice name two or more different gateways.Raise the Payment Request by hand, and point the customer's plans to one gateway.
"Stale subscription invoice not auto-charged: <INVOICE>", and the comment "Left as draft: due date <DUE_DATE> is more than <DAYS> days in the past. Charge manually."The invoice's due date is older than Auto-charge Max Lateness (days).Check the draft Payment Request and submit it to charge, or delete it.
The customer got a payment link e-mail instead of being chargedThe gateway did not take the payment itself: for GoCardless, the customer has no active GoCardless Mandate.Set up the mandate. Later invoices are charged without an e-mail.
"Subscription payment not confirmed: <PAYMENT_REQUEST>", and the comment "Payment not confirmed: the payment gateway neither confirmed a payment nor returned a payment link."The gateway's check raised an error (a gateway that cannot be reached, for example), or GoCardless's payments API failed or refused the payment. ERPNext's payment_gateway_validation gives the same answer for these as for a charge, and no Integration Request against the request is Authorized or Completed. The request stays Requested, unpaid and un-e-mailed.Check the gateway's settings, the Integration Request and the Error Log, confirm in the gateway that nothing was charged, then collect the payment by hand.

Customer settings

MessageCauseFix
"Subscription Billing Anchor Date is required for Anniversary anchoring."Subscription Billing Anchor is Anniversary with no date.Set Subscription Billing Anchor Date, or choose Calendar.
"Customer <CUSTOMER>: Anniversary anchoring needs subscription_billing_anchor_date"The anchor date was removed outside the form, for example by a data patch.Set the date on the Customer and save.

Anchored billing

MessageCauseFix
"Follow Calendar Months cannot be combined with a customer billing anchor; clear it."Follow Calendar Months is ticked on a subscription of an anchored customer.Untick it: the anchor already decides the periods.
"Plan <PLAN> uses Monthly Rate pricing, which cannot be prorated or anchored."The plan's Subscription Price Based On is Monthly Rate.Use a plan priced by Fixed Rate or Based On Price List.
"Subscription <SUBSCRIPTION>: cannot anchor a Day plan" (or Week)The plan's Billing Interval is Day or Week.Use a Month or Year plan, or clear the customer's anchor.
"Subscription <SUBSCRIPTION>: a 5-month plan does not divide a year"The customer is billed yearly and the plan's Billing Interval Count does not divide 12.Use a plan of 1, 2, 3, 4, 6 or 12 months, or set Subscription Billing Interval to Month.
"Plan <PLAN> resolves to a zero rate (missing Item Price?)"The plan's rate came out as zero, usually because its price list has no Item Price for the item.Add the Item Price, or give the plan a Cost.
"Start Date <DATE> lies in a billing period that has already ended, so the period starting <DATE> would only be billed once the first invoice is paid and is dropped when it ends. ..."The start date is in a period that has ended, and Generate New Invoices Past Due Date is off.Tick Generate New Invoices Past Due Date, or load the subscription as an import: see Load subscriptions with a history.
"Start Date <DATE> is too far in the past for the elapsed periods to be billed (they reach one billing cycle past the first period end). ..."The first invoice is left to the daily run (a consolidating customer, or Mid-term Billing Mode on Next Daily Run) and today is a full period or more past the end of the first period.Load the subscription as an import and replay the periods. The message also suggests Generate New Invoices Past Due Date, but this check applies with it ticked too.

Consolidated invoices

Message or Error Log titleCauseFix
"Consolidated billing failed: <CUSTOMER>" (Error Log)Building or submitting the customer's invoice failed. The log holds the traceback, and nothing of that group was kept.Fix the cause in the log. The next run bills the group.
"Consolidated billing for <CUSTOMER> failed: <ERROR>"The errors of a group in the summaries run_consolidated_billing returns: building or submitting the invoice failed, and the group was rolled back.Fix the cause, which is also in the Error Log, and run again.
"Consolidated billing scan failed: <SUBSCRIPTION>" (Error Log)The subscription could not even be checked for being due, usually because of a plan that cannot be anchored.Fix the plan or the subscription. The customer's other subscriptions are billed without it.
"Subscription <SUBSCRIPTION>: identical item and description already on <INVOICE>; set a Service Identifier or enable Selling Settings > Allow Item to Be Added Multiple Times"Two subscriptions of the same item have the same description. The setting is labelled Allow same Item to be added multiple times in a transaction.Give each subscription its own Service Identifier, or tick that setting in Selling Settings.
"Subscription <SUBSCRIPTION> produced a zero-rate line; core would re-price it at list price."A line came out with a zero rate or quantity.Check the plan's price and the subscription's quantity.
"Consolidated billing for <CUSTOMER> failed earlier in this run; not billing <SUBSCRIPTION> standalone"One of the customer's groups failed in this run, so the others are not billed one by one.Fix the cause of the first failure in the Error Log.
"Billing for <CUSTOMER> is running elsewhere"Another run, or a cancellation, held the customer's billing lock for more than 60 seconds.Wait for the other run to finish and run again.
"Consolidated billing for <CUSTOMER> hit a deadlock"The database aborted the group because of a lock conflict with another transaction.Run again.
"Process Subscription (customer) failed" (Error Log)An unexpected error stopped a Process Subscription that had a Customer set.Fix the cause in the log and submit a new Process Subscription.
"Subscription status refresh failed: <SUBSCRIPTION>" (Error Log)Refreshing one subscription's status after an invoice was cancelled or paid failed. The other subscriptions were refreshed.Open the subscription and use Actions > Fetch Subscription Updates.

Cancellation with a credit note

MessageCauseFix
"Credit note <CREDIT_NOTE> already credits row <ROW> of <INVOICE>."A submitted return already credits that line.Check the existing Credit Note. To cancel without a new credit, untick Credit Note On Cancellation for the moment.
"Row <ROW> of <INVOICE> has already been fully returned."The whole quantity of that line has been returned already.As above.
"<INVOICE> carries an Actual-amount tax row; issue this credit note manually."The source invoice has a tax row of type Actual, which cannot be scaled.Make the Credit Note by hand.
"Row <ROW> of <INVOICE> carries no service period; issue that credit note manually."An old invoice line has no period, on the line or in the invoice's From Date.Make the Credit Note by hand.
"<SUBSCRIPTION> is billed in arrears; nothing is prepaid. Use Cancel Subscription instead."cancel_with_credit_note was called for a subscription billed at the end of the period.Use Actions > Cancel Subscription.
"Credit Note On Cancellation is disabled in Subscription Settings."cancel_with_credit_note was called with the setting off.Tick the setting, or use Cancel Subscription.
"Credit notes on cancellation are only supported for Customer subscriptions."cancel_with_credit_note was called for a supplier subscription.Use Cancel Subscription.
"subscription is already cancelled."The subscription is already Cancelled.Nothing to do.