checkbox
Odoo 19's own views write widget="checkbox", yet no such widget exists in the registry. This page explains the Missing widget console warning, the fallback that renders anyway, and what to use instead.
August 25, 2026Updated August 25, 20265 min read
| Technical name | checkbox |
|---|---|
| Field types | boolean |
| Views | form (core usage; the name is not registered) |
| Module | none; the name is not registered by any module |
| Used in core | 2 occurrences in hr_holidays, both on the leave type form |
| Versions | Odoo 19.0 |
| No-code setup | Not applicable: booleans render as a checkbox by default, no widget needed |
| Alternatives | boolean, boolean_toggle, boolean_favorite |
What the checkbox widget name does
What this means for your team
Working examples
How Odoo resolves a widget name, step by step
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Core usages removed on the development branch; a separate boolean_checkbox widget appears. See below. |
| Odoo 19.0 | Partial / changed | Name used in core views but unregistered; renders via the boolean fallback with a console warning. |
| Odoo 18.0 | Not available | Name neither registered nor used in core views. |
| Odoo 17.0 | Not available | Name neither registered nor used. |
| Odoo 16.0 | Not available | Name neither registered nor used. |
Upgrade note. Databases upgraded to 19 inherit the two core usages automatically; they are harmless. Custom views written against 18's selection field requires_allocation need the boolean conversion far more than they need any widget attribute.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| Console shows Missing widget: checkbox for field of type boolean | A view requests the unregistered name; the engine warns and falls back to the boolean widget. Harmless. Silence it by removing the widget attribute or writing widget="boolean". |
| Options set next to widget="checkbox" do nothing | The fallback resolves the plain boolean widget, which has no options. Use boolean_toggle, boolean_favorite or boolean_icon for configurable behavior. |
| Same warning but for a custom widget name | The module registering that widget is not installed or its assets failed to load. That case is real: check the module and the asset bundle before trusting the fallback. |
| Field renders as raw text instead of a checkbox | The field type itself has no registered default, which never happens for boolean. Check the field type; only exotic custom types reach the bare default component. |
| Warning floods the console during testing | It fires on every render of the view containing the phantom name. Sweep custom views for unregistered widget names and drop them. |
Checkbox widget name vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
checkbox | Nothing: an unregistered name kept working by the fallback | Renders the default boolean checkbox plus a console warning; zero configurable behavior |
| boolean | The standard checkbox, explicitly named | The registered widget the fallback resolves anyway, minus the warning |
| boolean_toggle | A switch that saves the record immediately on flip | Real widget with autosave behavior, the usual intent behind wanting a fancier checkbox |
| boolean_favorite | Star-style flag on records | Registered widget with its own rendering and autosave option |
Frequently asked questions
Is widget="checkbox" an error in my view?+
Why does Odoo's own code use a widget that does not exist?+
Will Odoo 20 finally register a checkbox widget?+
How do I find phantom widget names in my customizations?+
When is the Missing widget warning serious?+
Console full of warnings nobody on the team can explain?
Phantom widgets, deprecated attributes and silent fallbacks accumulate in every long-lived Odoo database. Our developers audit custom views and modules, separate the noise from the real defects, and leave you a clean, upgrade-ready codebase.
Book a free consultation