BOM Upload Errors in Distru
Overview
This page documents the most common, required-field and validation errors you’ll see when bulk uploading Bills of Materials (BOMs) into Distru, along with exactly how to fix each one.
Prerequisites
Products referenced by your BOM (outputs/ingredients) are created in Distru.
You know each product’s inventory tracking method (Package, Product, Batch).
If you’ll use Dynamic Ingredients, you know your Categories, Subcategories, Groups, and Tags and how to format them.
If adding Costs, you have Cost Types set up in Settings → Cost Accounting → Cost Types.
Table of Contents
Step by Step Guide [Errors]
❌ Error: output_product_name: does not exist
❌ Error: ingredient_product_name: does not exist
📖 What It Means
These errors occur when the Output Product Name or Ingredient Product Name entered in the bulk upload sheet cannot be found in Distru. The system only accepts names of products that already exist in Distru, so if the names don’t match exactly, the BOM upload will fail.
✅ How to Resolve
Confirm that all products listed in your BOM (both output and ingredients) have already been created in Distru.
Navigate to ☰ Hamburger Menu > Inventory > Products and search for the exact product name.
Copy/paste the product name directly from Distru into your BOM sheet to ensure accuracy.
⚠️ Common Mistakes
Entering a product name that hasn’t been created yet.
Typos or mismatched spacing (e.g.,
"510 Cartridge"vs"510 Cartridge").Using placeholder names that were never updated.
❌ Error: row: must populate INGREDIENT UNIT TYPE when row is ingredient
📖 What It Means
This error occurs when you list an ingredient in your BOM but leave the Ingredient Unit Type blank. Every ingredient row requires both a Quantity and a Unit Type to be valid.
✅ How to Resolve
Enter both Ingredient Quantity and Ingredient Unit Type for every ingredient row.
Valid unit types include: Fluid Ounce, Gallon, Gram, Kilogram, Liter, Milligram, Milliliter, Ounce, Pint, Pound, Quart, Unit.
⚠️ Common Mistakes
Leaving the unit type blank.
Using plural forms (e.g.,
"Grams"instead of"Gram").Typos in unit type values.
❌ Error: name: Please enter a name
📖 What It Means
This error occurs when the BOM Name column in your bulk upload sheet is blank. Every BOM must have a name so the system can associate ingredients and outputs.
👉 While the BOM Name can differ from the Output Product Name, it’s best practice to keep them 1:1 aligned. This helps clearly tie which BOM drives which product and avoids confusion later.
✅ How to Resolve
Enter a valid BOM Name in the BOM Name column.
Use descriptive names that identify the build (e.g.,
"510 Rosin Cartridge").For clarity, match the BOM Name to the Output Product Name whenever possible.
⚠️ Common Mistakes
Leaving the BOM Name field blank.
Copy/pasting rows where the BOM Name column accidentally clears.
Creating a BOM Name that doesn’t clearly tie back to an Output Product.
❌ Error: product: The product being used cannot be package-tracked
📖 What It Means
This occurs when you attempt to build a Batch-Tracked BOM using a Package-Tracked Product as an ingredient. Distru does not allow combining cannabis-tracked packages into non-cannabis tracked builds, since this breaks METRC compliance.
✅ How to Resolve
Verify the tracking type of the product:
Search for the product in the Distru top search bar, select it, click the three dots → Edit.
The product page will show whether it is Package, Product, or Batch tracked.
Alternatively, navigate to ☰ Hamburger Menu > Inventory > Products and search/filter by product.
⚠️ Common Mistakes
Mixing package-tracked products with batch builds.
Not checking the tracking type before including products in BOMs.
❌ Error: quantity: Please enter a quantity
📖 What It Means
This error appears when the Ingredient Quantity field is blank. Distru requires a numerical value to define how much of each ingredient is consumed.
✅ How to Resolve
Enter a valid number for every ingredient row under Ingredient Quantity.
⚠️ Common Mistakes
Leaving the column blank.
Entering text (e.g.,
"one"instead of1).Copying/pasting data with hidden spaces or invalid characters.
❌ Error: row: cannot populate both INGREDIENT and COST fields with data
📖 What It Means
This error occurs when a single row contains values in both Ingredient fields and Cost fields. Distru requires that ingredient rows and cost rows be separated.
✅ How to Resolve
Create separate rows:
One row for the ingredient (with Ingredient Quantity + Unit Type).
A different row for costs (Cost Description + Cost Quantity + Cost Type).
⚠️ Common Mistakes
Trying to log both ingredient usage and cost allocation on the same line.
❌ Error: cost_type_id: can't be blank
What It Means
A Cost Type is required when adding a cost row.
How to Resolve
Enter a valid Cost Type.
Create new ones at Hamburger Menu → Settings → Cost Accounting → Cost Types if needed.
Common Mistakes
Empty Cost Type cell.
Using names that don’t exist in your Cost Types list.
❌ Error: row: ingredient cannot be both product type and filter type
📖 What It Means
This happens when a row tries to use a specific product name and a dynamic filter (category/group/subcategory/tag) at the same time. The system does not allow this combination.
✅ How to Resolve
Use separate rows for:
One with the exact Product Name, and
Another with a dynamic filter (Category, Group, Subcategory, or Tag).
⚠️ Common Mistakes
Combining both fields in one row.
Not realizing that categories and subcategories can be combined (e.g.,
"Tincture Filling [Tincture]").
❌ Error: ingredient_product_subcategory_filter: must be in the format 'Subcategory [Category]'
❌ Error: ingredient_product_subcategory_filter: contains subcategories that do not exist
📖 What It Means
These errors occur if the Ingredient Product Subcategory Filter is entered incorrectly. Distru requires the format:
Subcategory [Category]
✅ How to Resolve
Verify valid subcategories exist in ☰ Hamburger Menu > Settings > Customize Distru > Product Categories.
Ensure you enter the subcategory first, then the category in brackets.
(Optional) Add a helper column like Short Subcategory to concatenate automatically with a formula:
=IF(ISBLANK(G2),"",CONCATENATE(G2," [",F2,"]"))
When re-uploading, map only the official subcategory filter column, not the helper field.
⚠️ Common Mistakes
Entering category without subcategory (invalid).
Entering subcategory without category (invalid).
Populating both Product Ingredient and Dynamic Filters on the same row (must be separate).
❌ Error: cost_type: does not exist
What It Means
The Cost Type you entered doesn’t match anything configured in Distru.
How to Resolve
Check Hamburger Menu → Settings → Cost Accounting → Cost Types.
Use an existing name exactly or create the missing one.
Common Mistakes
Spelling/casing differences.
Assuming a generic label (e.g., “Labor”) exists when it hasn’t been created.
❌ Error: quantity: can't be blank (Cost Quantity)
❌ Error: quantity: is invalid (Cost Quantity)
What It Means
While the error says quantity, this refers to Cost Quantity on cost rows. It’s either blank or not a valid number.
How to Resolve
Enter a numeric value in Cost Quantity (no
$, commas, or words).
Common Mistakes
$5instead of5oneinstead of1Copy/paste with hidden spaces or formatting
