Skip to content

[base_exception] wizard ignores is_blocking when "Ignore Exceptions" is checked #3667

Description

@Pani-k-folk

Module

base_exception

Describe the bug

The Ignore Exceptions wizard, which is shared across all downstream *_exception modules (such as Purchase, Purchase Request, Sale, Account Move, and HR Expense), contains a validation bypass.

Although exceptions marked with is_blocking = True are intended to be non-ignorable, the wizard sets ignore_exception = True directly on the record instead of calling base.exception.action_ignore_exceptions(), which is the method responsible for enforcing the blocking check.

As a result, users can ignore blocking exceptions. Once ignore_exception is set to True, the record is excluded from all future exception checks, making the bypass persistent until the document is reset (for example, by reverting it to the Draft state).

To Reproduce

Affected versions:

Steps to reproduce the behavior:

  1. Create an Exception with is_blocking = True on
  2. Create a Record that triggers the rule, click Confirm — the exception wizard opens as expected.
  3. Check "Ignore Exceptions", click Close on the wizard.
  4. Record Skip Exception

Expected behavior
A blocking exception (is_blocking = True) should never be ignorable from any entry point, including this wizard — it should raise the same error that action_ignore_exceptions() raises, and Confirm should stay blocked.

Additional context
Affects every module built on this wizard: purchase_exception, purchase_request_exception (OCA/purchase-workflow), sale_exception (OCA/sale-workflow), account_move_exception (OCA/account-invoicing), hr_expense_exception (OCA/hr-expense), and any custom *_exception module following the same pattern.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions