Server Action Runtime Risk
A finding from the Migration Audit that flags ir.actions.server records, whose behavior can only be fully confirmed by testing on a clean target database.
What This Finding Means
The module defines ir.actions.server records in XML data files. These are runtime constructs: their effect depends on the Python code they execute or the models and methods they call, which may have changed between versions.
Why It Matters
Static analysis can confirm the record loads, but it cannot prove the action still does what it did before. A method it references may have been renamed, a model field may have moved, or the action type options may have changed, so the action can load cleanly yet behave incorrectly.
Example
<record id="action_send_email" model="ir.actions.server">
<field name="name">Send Reminder</field>
<field name="model_id" ref="model_sale_order"/>
<field name="state">code</field>
<field name="code">records.action_send_reminder()</field>
</record>Target Version Risk
- Referenced method renamed or removed on the target model
- Server action state options changed between versions
- Context or evaluation variables behaving differently
Recommended Fix Direction
Treat each server action as something to retest rather than assume it ports cleanly. Confirm any method named in the code field still exists on the target model, and review the action's type and parameters against the target version's server action options.
How to Verify Manually
Install the module in a clean target Odoo database. Manually trigger each server action from the record or automation it belongs to, and confirm the resulting changes, emails, or follow-up actions match the original behavior.
Related Odoo Doctor Tool
The Migration Audit lists the server actions in your module as an initial scan. Treat that list as a checklist for manual testing in a clean target database.
Run Migration Audit