Troubleshooting
This page grows over time. Each entry is a short symptom + cause + fix.
I can’t delete a cut sheet
Symptom: clicking Delete on a cut sheet produces an error message mentioning labelled packs, a sale order, or stock pickings.
Cause: Cleaver intentionally blocks deletion of sheets with downstream artifacts to preserve the recall trail. Three rules apply:
- Counter staff only: blocked if any line has labelled packs. Ask a manager to delete, or delete the packs first.
- Everyone: blocked if the linked sale order is in any state
other than
draftorcancel. Cancel the SO first — Odoo’s standard cancel cascades through non-posted invoices. - Everyone: blocked if any linked stock picking is in any state
other than
draftorcancel. Cancel the picking first.
After you fix the blocker, retry the delete. The deletion posts an audit note to the parent carcass’s chatter so the action is auditable.
I can’t delete a carcass
Symptom: clicking Delete on a carcass produces an error message about linked cut sheets or posted bulk batches.
Cause: same audit-trail protection as cut sheets. Three rules, all apply to everyone including managers:
- Blocked if any linked cut sheet has an active sale order or picking. Error tells you which sheet and which SO / picking is the blocker. Cancel the SO / picking, then return to the carcass.
- Blocked if any clean (draft or cancelled) cut sheets are still linked. Delete the sheets first — each delete posts an audit note to this carcass.
- Blocked if the carcass contributed trim to any posted bulk batch. No bypass — those stock lots are live and the recall trail cannot be broken.
The two-click delete-sheets-then-delete-carcass workflow is the only path. There is no manager override.
Label downloads but the PDF is blank
The browser’s in-tab PDF viewer occasionally fails on small custom-paperformat PDFs. Save the file to your Downloads folder (right-click → Save As) and open it in Adobe Reader / Preview / Edge desktop instead. The underlying PDF is fine — the in-tab preview is the broken piece.
Read Scale always reads a fixed weight
The scale integration ships as a placeholder until your hardware is wired up — Web Serial or IoT box. Settings → Cleaver → Scale Integration walks you through connecting a real scale. Until then Read Scale drops a plausible weight in the [0.5, 2.5] kg range so the workflow is testable.
POS scans the right barcode but bills list price, not weight × price
The lot’s weight_kg is empty. Open the lot under
Inventory → Lots, type the actual weight, save. Re-scan at POS.
Going forward, make sure the cutter clicks Read Scale before Generate
Serial so the weight is captured at mint time.
A sale order didn’t auto-invoice on pickup
Auto-invoice fires only when the LAST customer-delivery picking on the cut sheet validates. If you’ve staged multiple pickups (rib morning, chuck afternoon), the invoice posts on the second validate. If a non-fatal error blocked the post (missing tax, missing journal), the pickup itself succeeds and the SO stays in Confirmed — open it and click Create Invoice manually.
Carcass propagation didn’t stamp the source animal on charcuterie output
Make sure the consumed raw material is a serial-tracked stock.lot
with a carcass linked — that’s how the pre-Mark-Done hook walks back
to the source. Lots created outside the Cut Sheet flow (e.g., manual
stock adjustments) won’t have the carcass linkage and won’t propagate.
My sale order shows the wrong unit (kg when I’m on lb, or vice versa)
A sale order line was generated on an older version of Cleaver that hardcoded kg in the description regardless of your shop’s display unit. Newer SOs match your shop unit correctly.
Fix: cancel the affected SO and regenerate it from the carcass form.
Demo data got out of sync after testing
On the demo deployment, a daily cron at 3 AM resets the template DB if no real activity occurred in the preceding 24 hours. Tenant data (shops in production) is never touched.
To force-reload demo data on a development tenant: Settings → Cleaver → Setup → Load Demo Data.
Odoo says the page is unavailable / 503
Usually transient — it means a software update is rolling out and the old container has stopped serving requests while the new one warms up. Wait 60 seconds and refresh. If it persists past 5 minutes, email [email protected].
Still stuck?
Reach out — every shop’s flow is a little different and we’d rather walk you through it once than have you fight the system.