Odoo module upgrades, done for you
Your module breaks because attrs= and states= were removed in Odoo 17
In Odoo 17, the attrs= and states= view attributes were removed. Every attrs="{'invisible': [...]}" has to become a direct invisible="..." expression — across every view in your module. It's pure grunt work, and it's the single most common thing that breaks on upgrade.
Send us the module. We rewrite all of them, install on the target version, and test until it's green. Try it live, then $50 to download.
Try the working result before you pay a cent. No signup to get started.
Common questions
Why does my Odoo module say attrs is invalid?
Odoo 17 removed the attrs= attribute. The logic now lives in direct attributes like invisible=, readonly=, and required= as Python expressions.