diff --git a/addons/delivery/i18n/delivery.pot b/addons/delivery/i18n/delivery.pot
index efb527e4daa3bd34f0434048305445dfbc39b9ef..0b54cf4894af96a7875befa1c376e4a15f9943b8 100644
--- a/addons/delivery/i18n/delivery.pot
+++ b/addons/delivery/i18n/delivery.pot
@@ -982,6 +982,15 @@ msgstr ""
 msgid "The Poste"
 msgstr ""
 
+#. module: delivery
+#. odoo-python
+#: code:addons/delivery/models/delivery_carrier.py:0
+#, python-format
+msgid ""
+"The package cannot be created because the total weight of the products in the"
+" picking is 0.0 %s"
+msgstr ""
+
 #. module: delivery
 #: model:ir.model.fields,help:delivery.field_delivery_carrier__get_return_label_from_portal
 msgid ""
diff --git a/addons/delivery/models/delivery_carrier.py b/addons/delivery/models/delivery_carrier.py
index 0f4e5b5f2afebb7b5008061b3cf53f21dfd1d4ee..6309a2b254c01650c4380ea475da95e9b8aada0a 100644
--- a/addons/delivery/models/delivery_carrier.py
+++ b/addons/delivery/models/delivery_carrier.py
@@ -5,6 +5,7 @@ import psycopg2
 
 from odoo import api, fields, models, registry, SUPERUSER_ID, _
 from odoo.tools.float_utils import float_round
+from odoo.exceptions import UserError
 
 from .delivery_request_objects import DeliveryCommodity, DeliveryPackage
 
@@ -361,6 +362,8 @@ class DeliveryCarrier(models.Model):
             for move_line in picking.move_line_ids:
                 package_total_cost += self._product_price_to_company_currency(move_line.qty_done, move_line.product_id, picking.company_id)
             packages.append(DeliveryPackage(commodities, picking.weight_bulk, default_package_type, name='Bulk Content', total_cost=package_total_cost, currency=picking.company_id.currency_id, picking=picking))
+        elif not packages:
+            raise UserError(_("The package cannot be created because the total weight of the products in the picking is 0.0 %s") % (picking.weight_uom_name))
 
         return packages