Skip to main content

Troubleshooting: products, partners and licenses

Core module For: Administrator, Compliance manager, Warehouse staff, Sales and purchasing Checked on 18.0.0.2.0

What to do when an order, a transfer or a master-data form stops with an error about a trading partner, a license, a product code or a GLN. The authorized-trading-partner refusals come first: they are met on every page that buys, sells, receives, ships or takes back DSCSA products, and every fix is a master-data fix. Messages about access rights are on Access, companies and setup. Abbreviations: EPCIS: Electronic Product Code Information Services; GLN: Global Location Number; GTIN: Global Trade Item Number; NDC: National Drug Code; T3: Transaction Report (see the glossary).

Error: "… can't be confirmed: it contains DSCSA products …"​

What you see: an Invalid Operation dialog with two parts: first the action that was refused, then one line per reason. For a quotation or a request for quotation:

ORDER-NUMBER can't be confirmed: it contains DSCSA products (PRODUCTS).
REASON

For a purchase order waiting for approval:

ORDER-NUMBER can't be approved: it contains DSCSA products (PRODUCTS).
REASON

For a receipt, a delivery or a return:

TRANSFER-NUMBER can't be validated: it moves DSCSA products (PRODUCTS) to or from a trading partner.
REASON

For example (the date depends on the day the example database was built):

S00026 can't be confirmed: it contains DSCSA products ([DEMO-DPZ-20] Demoprazole 20 mg Delayed-Release Capsules, 30 count).
Lakeview Apothecary (dispenser) has no valid state license: license DEMO-CA-PHY-61177 expired on 2026-09-13.

On a transfer, a reason about the partner of the order behind it starts with "Customer of ORDER-NUMBER:" or "Vendor of ORDER-NUMBER:". When a customer pays an order online, a "Payment processing failed" window shows "This order can't be paid online yet." followed by the order's message: see Error: "This order can't be paid online yet.".

When: confirming a quotation (Confirm a sales order for DSCSA products), confirming or approving a purchase order (Confirm a purchase of DSCSA product), validating a receipt, a delivery or a customer return (Scan the serials of a delivery and validate it), or a customer accepting or paying an order online (Let a customer accept or pay an order online).

Cause: the order or transfer has DSCSA products, and the partner's company is not an authorized trading partner today for your company. Only the DSCSA products are listed: an order with only non-DSCSA products is never refused. The status is checked again at each step, so a license that lapses after the order was confirmed stops its receipt or delivery.

Remedy: a resolution. Read the reason line and follow the entry below that matches it. To see the same reasons before the next attempt, open the partner's DSCSA tab (Check whether a partner is an authorized trading partner). Then repeat the action that failed.

The reason line saysEntry
"… license NUMBER expired on DATE."License expired
"… license NUMBER is unverified."License unverified
"… none on file." or "… none on file (a DEA registration does not count)."No license on file
"… has no DSCSA role set, so it is not an authorized trading partner."No DSCSA role
"… license NUMBER is not in force until DATE."License not in force yet
"… has no valid FDA 503(e) annual report: …"FDA 503(e) annual report missing
"Delivery address ADDRESS: …"Delivery address of another company

Who can fix it: Rx Tracking Manager (licenses); Rx Tracking User or Manager with a right to edit contacts (the role). Sales and purchasing staff without an Rx Tracking right can't see the reasons on the partner: see Error: "… not an authorized trading partner" when you have no Rx Tracking right.

Error: "… has no valid state license: license … expired on …"​

What you see:

PARTNER (ROLE) has no valid LICENSE-TYPE: license NUMBER expired on DATE.

For example: "Lakeview Apothecary (dispenser) has no valid state license: license DEMO-CA-PHY-61177 expired on 2026-09-11." When the partner has several licenses of that type, each one's problem is listed, newest first, separated by "; ".

When: in a refusal (Error: "… can't be confirmed …") and in the yellow banner of the partner's DSCSA tab.

Cause: the partner's only license of the type its role needs has passed its Expiry Date.

Remedy: a resolution.

  1. Check the renewed license at its source.
  2. Record and verify it, then archive the expired one: Renew, correct or retire a verified license.
  3. Repeat the action that failed.

Who can fix it: Rx Tracking Manager.

Error: "… has no valid state license: license … is unverified."​

What you see:

PARTNER (ROLE) has no valid LICENSE-TYPE: license NUMBER is unverified.

For example: "Crestline Wholesale Drug Co. (wholesaler) has no valid state license: license DEMO-NV-WHL-10388 is unverified."

When: in a refusal (Error: "… can't be confirmed …") and in the partner's DSCSA tab banner.

Cause: the license is recorded but nobody has marked it verified.

Remedy: a resolution.

  1. Check the license at its source, fill in Verification Source and add the proof as Evidence.
  2. Select Mark verified (Record and verify a trading partner's license steps 4–7).
  3. Repeat the action that failed.

Who can fix it: Rx Tracking Manager.

Error: "… has no valid state license: none on file."​

What you see: one of:

PARTNER (ROLE) has no valid LICENSE-TYPE: none on file.
PARTNER (ROLE) has no valid LICENSE-TYPE: none on file (a DEA registration does not count).

For example: "Maple Street Pharmacy (dispenser) has no valid state license: none on file (a DEA registration does not count)." LICENSE-TYPE is "state license" for dispensers, wholesale distributors and 3PLs, and "FDA establishment registration" for manufacturers and repackagers.

When: in a refusal (Error: "… can't be confirmed …") and in the partner's DSCSA tab banner.

Cause: no active license of the required type is recorded for the partner's company. A DEA registration never counts, and an archived license doesn't count. A license recorded for another of your companies doesn't count either.

Remedy: a resolution.

  1. Check that the partner's DSCSA Role is right (Onboard a trading partner).
  2. Record and verify the license of the required type: Record and verify a trading partner's license.
  3. Repeat the action that failed.

Who can fix it: Rx Tracking Manager.

Error: "… has no DSCSA role set, so it is not an authorized trading partner."​

What you see:

PARTNER has no DSCSA role set, so it is not an authorized trading partner.

For example: "Brightside Medical Supply Inc. has no DSCSA role set, so it is not an authorized trading partner."

When: in a refusal (Error: "… can't be confirmed …"). The partner's DSCSA tab shows no banner for this case: Authorized Trading Partner is simply cleared.

Cause: the partner's company has no DSCSA Role, so the software can't tell which license it needs.

Remedy: a resolution.

  1. Set the role on the partner's company (Onboard a trading partner step 5).
  2. Record and verify its license (MD-08).
  3. Repeat the action that failed.

Who can fix it: Rx Tracking User or Manager with a right to edit contacts (the role); Rx Tracking Manager (the license).

Error: "… license … is not in force until …"​

What you see:

PARTNER (ROLE) has no valid LICENSE-TYPE: license NUMBER is not in force until DATE.

When: in a refusal and in the partner's DSCSA tab banner.

Cause: the license is verified, but its Issue Date is in the future. Its status is Not yet in force.

Remedy: if the date is right, wait for it: the partner is authorized from that day. If the date was mistyped, correct the license (Renew, correct or retire a verified license). This is a resolution.

Who can fix it: Rx Tracking Manager.

Error: "… has no valid FDA 503(e) annual report: …"​

What you see:

PARTNER (wholesaler) has no valid FDA 503(e) annual report: DETAIL.

(or "(3PL)" for a third-party logistics provider). DETAIL is "none on file", or the report's problem as in the entries above.

When: in a refusal and in the partner's DSCSA tab banner, only when the company setting that also asks wholesalers and 3PLs for an FDA 503(e) annual report is on.

Cause: the partner is a wholesale distributor or a 3PL, and no valid license of the type FDA 503(e) annual report is recorded.

Remedy: a resolution. Record and verify the report as a license of the type FDA 503(e) annual report (MD-08). Whether the setting is on is decided in Set whether wholesalers and 3PLs need an FDA 503(e) report.

Who can fix it: Rx Tracking Manager (the license); an administrator (the setting).

Error: "Delivery address …: …"​

What you see: in the refusal of a quotation, a reason line that starts with the delivery address:

Delivery address ADDRESS: PARTNER (ROLE) has no valid LICENSE-TYPE: DETAIL.

When: confirming a quotation whose Delivery Address belongs to another company than the customer (OUT-01). The quotation shows Invoice Address and Delivery Address when the Customer Addresses option of Odoo's invoicing settings is on. For example: "Delivery address Granite State Rx Supply LLC: Granite State Rx Supply LLC (wholesaler) has no valid state license: license DEMO-NH-WHL-3301 expired on 2026-09-06."

Cause: the goods go to that other company, so it must be an authorized trading partner too.

Remedy: a resolution. Fix the other company's role or license as the rest of the line says (entries above), or choose a delivery address of the customer itself. Then confirm again.

Who can fix it: Rx Tracking Manager; the salesperson for the delivery address.

Error: "… but no trading partner is set on the transfer."​

What you see:

TRANSFER-NUMBER can't be validated: it moves DSCSA products (PRODUCTS) to or from a trading partner, but no trading partner is set on the transfer.

When: validating a receipt, a delivery or a return of DSCSA products whose Receive From or Delivery Address is empty.

Cause: the software can't check a transfer to or from a trading partner without knowing who that partner is.

Remedy: a resolution. Fill in the partner on the transfer and validate again.

Who can fix it: the user validating the transfer.

Warning: "The DSCSA document of this shipment will have no EPCIS file …"​

What you see: a yellow banner on an open delivery:

The DSCSA document of this shipment will have no EPCIS file: REASONS. Add the GLN before validating; the file can't be added to a posted document later.

REASONS is "the buyer NAME has no GLN", "our company NAME has no GLN", or both. The sales order has the same warning as an internal note ("DSCSA warning: the delivery of this order will get its DSCSA document without an EPCIS file, because REASONS. Add the GLN before the delivery is validated: the file can't be added to a posted document later."), and a GLN missing activity ("Add the GLN of NAME before shipping") is scheduled on the partner that lacks the GLN.

When: when a sales order with DSCSA products is confirmed for a buyer that needs package-level data, while our company or the buyer's company has no GLN.

Cause: the EPCIS file names the parties by GLN. Nothing is blocked: without the GLN, the document posts with its T3 report only.

Remedy: a resolution if done before you validate the delivery: Fix a missing GLN before shipping. Once the delivery is Done, the document stays without its file: Handle a document posted without an EPCIS file.

Who can fix it: a user who can edit contacts (the buyer's GLN); an administrator (our company's GLN).

Error: "NDC '…' has 10 digits but no hyphens …"​

What you see: an Oh snap! dialog when you save a product, with one of:

NDC 'TEXT' has 10 digits but no hyphens, so it is unclear whether it is 4-4-2, 5-3-2 or 5-4-1. Enter the 10-digit NDC with its hyphens as printed on the package, for example 99990-101-30.
NDC 'TEXT' is not valid: it must be three groups of digits separated by hyphens. Enter the 10-digit NDC with its hyphens as printed on the package, for example 99990-101-30.
NDC 'TEXT' has segments of X-Y-Z digits. A 10-digit NDC is 4-4-2, 5-3-2 or 5-4-1 and an 11-digit NDC is 5-4-2. Enter the 10-digit NDC with its hyphens as printed on the package, for example 99990-101-30.
NDC 'TEXT' must contain digits and hyphens only. Enter the 10-digit NDC with its hyphens as printed on the package, for example 99990-101-30.
NDC 'TEXT' has N digits; an NDC has 10 digits (or 11 in billing format). Enter the 10-digit NDC with its hyphens as printed on the package, for example 99990-101-30.
NDC 'TEXT' is not a valid 11-digit NDC: none of its labeler (5 digits), product (4 digits) or package (2 digits) segments starts with the padding zero. Enter the 10-digit NDC with its hyphens as printed on the package, for example 99990-101-30.
The 11-digit NDC 'TEXT' is ambiguous: it could be the 10-digit NDC OPTIONS. Enter the 10-digit NDC with its hyphens as printed on the package, for example 99990-101-30.
NDC is empty.

When the product already has a GTIN, the ambiguous 11-digit message is followed by "None of them matches the GTIN GTIN.": a 10-digit NDC that gives the product's GTIN is chosen automatically, so this appears only when none does.

When: saving a product with an NDC (Set up a DSCSA product step 6), or importing products.

Cause: the NDC is not in a form the software can convert to the 10-digit NDC with hyphens.

Remedy: a resolution. Select Stay here, enter the NDC with its hyphens exactly as printed on the package (for example 99990-108-10), and save. For an ambiguous 11-digit NDC, enter the 10-digit form, or enter the product's GTIN first so that the software can choose.

Who can fix it: the user editing the product.

Error: "GTIN '…' has an invalid check digit …"​

What you see: an Oh snap! dialog, with one of:

GTIN 'DIGITS' has an invalid check digit: the last digit should be N, not M. Check for a typing or scanning error.
GTIN 'DIGITS' must have 8, 12, 13 or 14 digits, it has N.
GTIN 'TEXT' must contain digits only.
GTIN is empty.

When: saving a product with a GTIN typed by hand (MD-01, "With the manufacturer's GTIN instead of an NDC").

Cause: the GTIN was mistyped: its last digit is a check digit computed from the others.

Remedy: a resolution. Select Stay here, copy the GTIN again from the package or the manufacturer's data, and save. Or clear GTIN and enter the NDC: the GTIN is computed from it.

Who can fix it: the user editing the product.

Error: "The GTIN … of … is already used by …"​

What you see:

The GTIN GTIN of PRODUCT is already used by OTHER-PRODUCT. A GTIN identifies one product only.

"(archived)" follows OTHER-PRODUCT when that product is archived. For example: "The GTIN 00399990101300 of Illustrafen 200 mg Tablets, 100 count is already used by [DEMO-DPZ-20] Demoprazole 20 mg Delayed-Release Capsules, 30 count." A product's internal reference, if it has one, is shown in brackets before its name.

When: saving a product whose NDC or GTIN gives a GTIN another product already has (MD-01).

Cause: the NDC was mistyped, or the product already exists (possibly archived: open the product list's Archived filter).

Remedy: a resolution. Check the NDC on the package. If it is right, use the existing product instead of creating a second one; if that product is archived and wrong, correct its NDC or GTIN first.

Who can fix it: a user who can edit products.

Error: "… is a DSCSA product and must be tracked by lots …"​

What you see: one of:

PRODUCT is a DSCSA product and must be tracked by lots, not by unique serial numbers: package serial numbers are recorded by Rx Tracking on top of the lots.
PRODUCT is a DSCSA product, so it must be tracked in inventory (Track Inventory) and tracked by lots.

When: saving a DSCSA product after changing Track Inventory or its tracking on the General Information tab, or importing products.

Cause: Rx Tracking records the serial of each unit in its own package ledger, on top of Odoo's lots, so a DSCSA product must be stocked and tracked By Lots.

Remedy: a resolution. Select Stay here, select Track Inventory and By Lots, and save; or select Discard changes.

Who can fix it: the user editing the product.

Error: "These products are in the DSCSA record and must stay DSCSA products …"​

What you see:

These products are in the DSCSA record and must stay DSCSA products (archive them instead):
- PRODUCT: N package(s) in the DSCSA package ledger; quarantined lot(s) LOTS; posted DSCSA document(s) DOCUMENTS and N more

Only the reasons that apply are listed.

When: clearing DSCSA Product (Stop treating a product as DSCSA).

Cause: the product has packages in the ledger, a quarantined lot or a line on a posted DSCSA document, which must stay DSCSA records.

Remedy: a workaround: select Discard changes and archive the product instead (Archive a product).

Who can fix it: nobody can clear the flag; an Rx Tracking Manager with a product right can archive the product.

Error: "The GS1 company prefix length … must be between 6 and 12 …"​

What you see: one of:

The GS1 company prefix length of PRODUCT must be between 6 and 12 (or empty), not N.
The GS1 company prefix length must be between 6 and 12 (it is N). Leave it empty to use the default of 7.

When: saving a product (GS1 Company Prefix Length) or a contact (GS1 Prefix Length).

Cause: a GS1 company prefix has 6 to 12 digits.

Remedy: a resolution. Enter the length the manufacturer or partner gave you, or leave the field empty (0): for a product, the length then comes from the NDC; for a contact, 7 is assumed.

Who can fix it: the user editing the record.

Error: "GLN '…' has an invalid check digit …"​

What you see: an Oh snap! dialog, with one of:

GLN 'DIGITS' has an invalid check digit: the last digit should be N, not M. Check for a typing or scanning error.
GLN 'DIGITS' must have 13 digits, it has N.
GLN 'TEXT' must contain digits only.

When: saving a contact with a GLN (Onboard a trading partner), or importing contacts. The same checks apply to the company and warehouse GLN (CFG-02).

Cause: the GLN was mistyped. Spaces are allowed and removed; other characters are not.

Remedy: a resolution. Select Stay here, copy the GLN again from the partner's data, and save.

Who can fix it: the user editing the contact.

Error: "… is flagged as a small business dispenser …"​

What you see: one of:

The small-dispenser attestation date of PARTNER (DATE) is in the future.
PARTNER is flagged as a small business dispenser: enter the date on which the customer attested it.
PARTNER is flagged as a small business dispenser, but only a partner with the DSCSA role Dispenser can be one. Set the role to Dispenser or clear the small-dispenser flag.

On the form, an empty date shows the notification "Invalid fields: Small Dispenser Attested On" instead of the second message.

When: saving or importing a customer with Small Business Dispenser (Flag a small-dispenser customer).

Cause: the flag needs the role Dispenser and an attestation date that is today or earlier.

Remedy: a resolution. Enter the date the customer attested it, or set the role to Dispenser, or clear Small Business Dispenser; then save.

Who can fix it: Rx Tracking User or Manager with a right to edit contacts.

Error: "Enter where … was verified …"​

What you see:

Enter where LICENSE was verified (Verification Source: a URL or a short description) before marking it verified.

When: selecting Mark verified or Record re-verification on a license (Record and verify a trading partner's license step 7).

Cause: Verification Source is empty.

Remedy: a resolution. Fill in Verification Source (the look-up URL, or where and how you checked the license) and select Mark verified again.

Who can fix it: Rx Tracking Manager.

Error: "License … cannot expire before it is issued."​

What you see:

License LICENSE cannot expire before it is issued.

When: saving or importing a license whose Expiry Date is before its Issue Date.

Cause: the dates are swapped or mistyped.

Remedy: a resolution. Correct the dates as printed on the license and save.

Who can fix it: Rx Tracking Manager.

Error: "Record license … on the company …, not on its contact or address …"​

What you see:

Record license LICENSE on the company COMPANY, not on its contact or address CONTACT: authorization is checked on the company and shared by its contacts.

When: importing or creating a license through the API for a contact person or an address. The license form only lists companies.

Cause: authorization belongs to the partner's company and is shared by its contacts and addresses.

Remedy: a resolution. Put the company in Trading Partner (in an import file, the company's name) and import again.

Who can fix it: Rx Tracking Manager.

Error: "… is verified: the verification is evidence for its …, which can't change."​

What you see: when importing changes to a license, one of:

LICENSE is verified: the verification is evidence for its FIELDS, which can't change. To correct or renew it, archive it and record a new license, then verify that one.
A verified license cannot be set back to unverified: the verification is kept as evidence. Record a new verification, or archive the license.
A license is verified with the "Mark verified" button: its verification date, verifier and reminder date can't be written directly (FIELDS).
A license is verified with the "Mark verified" button, not by entering the verification date or verifier.

On the form the same fields are simply read-only once the license is verified.

When: importing or writing through the API the number, partner, type, jurisdiction, dates or company of a verified license, or its verification fields.

Cause: a verified license is evidence of what was checked on that day; its licensed facts and its verification can't be changed, and a license is verified only with Mark verified.

Remedy: a resolution. Record a new license, verify it, and archive the old one (Renew, correct or retire a verified license). Leave the Verified By and Verified On columns out of import files.

Who can fix it: Rx Tracking Manager.

Error: "… cannot be deleted: verified licenses are verification evidence …"​

What you see:

LICENSE cannot be deleted: verified licenses are verification evidence and must be kept for six years. Archive them instead.

When: selecting Delete in the ⚙ (Actions) menu of a verified license, or in the license list.

Cause: the software keeps verified licenses as evidence.

Remedy: a workaround: archive the license instead (Retire a license). Unverified licenses can be deleted.

Who can fix it: nobody can delete it; an Rx Tracking Manager can archive it.

No license-expiry reminder arrives​

What you see: a license expires within the reminder window (30 days by default), but nobody has a License expiring activity for it.

When: Act on license-expiry reminders.

Cause: one of:

  • the license's Responsible is OdooBot or an inactive user (licenses created by data files, demo data or scripts, PF-A01-08), or it is empty and the License expiring activity type has no Default User;
  • a reminder for the same expiry date was already marked done;
  • the license is archived;
  • the daily job DSCSA: license expiry reminders didn't run, or a wrong value of the reminder-window system parameter stops it (PF-A01-07).

Remedy: a resolution.

  1. Open the license and set a person in Responsible.
  2. Check the job and the parameter: Check that a DSCSA job ran, and run it by hand and Tune the jobs through system parameters.
  3. Meanwhile, use the Expiring in 30 Days filter of the license list.

Who can fix it: Rx Tracking Manager (Responsible); an administrator (the job and the parameter).