Stale User Assignments
Find and reassign everything still pointing at users who have left
The video below shows Stale User Assignments running on a real Odoo 19 database. Want it driven against your own data, or a question answered first? Ask and we will set up a session.
Archiving a user does not clear what is assigned to them. Every lead, task, order and scheduled action still points at the person who left - and because a many2one is never filtered by the active flag, all of it keeps reading and displaying normally.
It just quietly stops appearing in anyone's "My" filter. Nobody is told, and nothing breaks loudly enough to notice.
Odoo has no sweep for this. The HR departure wizard sets a departure reason and can archive the user; its extensions release equipment, a company car and leave allocations. No leads, no tasks, no orders, no purchases, no invoices.
What it does
One sweep, grouped by who left
Every stored link to an archived user, across every model - custom fields included, because it reads the field registry rather than a fixed list. View opens the records behind any line before you touch anything.
Then hand it all over at once
The wizard states exactly what will change before it changes anything.
It will not rewrite your history
create_uid and write_uid are never touched. Reassigning those would not fix an assignment - it would falsify a record of who actually did something.
It knows the difference between assigned and owned
A field under a unique key identifies its row rather than assigning it - one settings record per user, one personal stage per user. Those are detected from the database itself, so custom models of the same shape are covered, and they are never offered for reassignment.
Nothing happens silently
Records are written through the ORM, so every constraint, automation and tracking rule on them applies exactly as if you had edited each one by hand. Each group is written inside its own savepoint: if one model refuses - a posted entry, a state-based readonly, a custom validation - that group is rolled back and named in the result, while the rest still go through. A half-finished reassignment you were never told about would be worse than an error you can act on.
Screenshots


Requirements
- Odoo 19.0, Community or Enterprise.
- Odoo.sh or On-Premise only. Third-party apps cannot be installed on Odoo Online (SaaS) databases — check your hosting before buying.
- Module
mh_stale_user_assignment, version 19.0.1.0.9, licensed OPL-1.
Related apps
Per-field anonymization, a legal hold override, and an append-only purge log - not a Data Recycle clone
Real WCAG violations, found in your rendered pages - not another overlay widget
The Article 33 72-hour clock starts the moment you log the incident