Hi, some user reported that sometimes, somehow, when he opens a production, some fields such as “product” “bom”, just lose their value.
I’ve checked the server logs and got this:
7672 140120593266368 [2026-05-11 09:27:42,752] INFO trytond.protocols.dispatcher production.search(['AND', [['rec_name', 'ilike', '%OFR241112%'], ['rec_name', 'ilike', '%//%'], ['rec_name', 'ilike', '%ADIF%'], ['rec_name', 'ilike', '%FONTANAR%'], ['rec_name', 'ilike', '%//%'], ['rec_name', 'ilike', '%[15BE0030035]%'], ['rec_name', 'ilike', '%//%'], ['rec_name', 'ilike', '%[15SR3U000360]%'], ['rec_name', 'ilike', '%//%'], ['rec_name', 'ilike', '%[10MCB12R]%'], ['rec_name', 'ilike', '%CB-12R%'], ['rec_name', 'ilike', '%CB12%'], ['rec_name', 'ilike', '%CARGADOR%'], ['rec_name', 'ilike', '%BATERIAS%'], ['rec_name', 'ilike', '%RACK%']], [['state', '=', 'waiting']]], 0, 1000, [['effective_date', 'ASC'], ['planned_date', 'ASC'], ['number', 'ASC'], ['effective_date', 'ASC NULLS LAST'], ['id', 'ASC']], [.......]
7672 140120593266368 [2026-05-11 09:27:42,764] DEBUG trytond.protocols.dispatcher Result: [541897, 541899]
7672 140119398938304 [2026-05-11 09:27:43,319] INFO trytond.protocols.dispatcher production.read([541897, 541899], ['active_version', 'bom', 'company', 'effective_date', 'number', 'operations_state', 'planned_date', 'planned_start_date', 'product', 'quantity', 'reference', 'state', 'supplier', 'total_labor_time', 'uom', 'work_project', 'bom.rec_name', 'company.rec_name', 'operations_state:string', 'product.rec_name', 'state:string', 'supplier.rec_name', 'uom.rec_name', 'work_project.rec_name', 'rec_name', '_timestamp', '_write', '_delete'], [.......]
7672 140120102524608 [2026-05-11 09:27:47,026] INFO trytond.protocols.dispatcher production.search_count(['AND', [['state', '=', 'waiting']], [['rec_name', 'ilike', '%OFR241112%'], ['rec_name', 'ilike', '%//%'], ['rec_name', 'ilike', '%ADIF%'], ['rec_name', 'ilike', '%FONTANAR%'], ['rec_name', 'ilike', '%//%'], ['rec_name', 'ilike', '%[15BE0030035]%'], ['rec_name', 'ilike', '%//%'], ['rec_name', 'ilike', '%[15SR3U000360]%'], ['rec_name', 'ilike', '%//%'], ['rec_name', 'ilike', '%[10MCB12R]%'], ['rec_name', 'ilike', '%CB-12R%'], ['rec_name', 'ilike', '%CB12%'], ['rec_name', 'ilike', '%CARGADOR%'], ['rec_name', 'ilike', '%BATERIAS%'], ['rec_name', 'ilike', '%RACK%']]], [.....]
8524 140120959219392 [2026-05-11 09:27:47,070] INFO trytond.protocols.dispatcher production.on_change_product({'inputs': [], 'warehouse': None, 'uom': 1, 'location': None, 'company': 1, 'outputs': [], 'quantity': 1, 'bom': 64784, 'product': None, 'id': 541897}, [.....]
8524 140120959219392 [2026-05-11 09:27:47,070] DEBUG trytond.protocols.dispatcher Result: {'uom': None, 'bom': None}
I don’t understand why the on_change_product is being triggered with ‘product’: None, while the user is searching, and the production is on a state where the fields that trigger the on_change are readonly. I’m completely unable to reproduce it by my self.
Any idea ??
Thanks in advance.