Skip to content

Async progress toast never says which operation started; a failed policy search is shown twice #6729

Description

@vshvets-bc

Two feedback problems.

1. "Operation started" says nothing about the operation

Starting any async task (e.g. a data migration) shows a blue toast reading "Operation started", with the action name only as the small title. It reads like a positive confirmation but is info-coloured, and the wording is identical for every async action, so it never identifies what began.

The backend creates the notification with a fixed message for all task actions — common/src/notification/notification-events.ts:226:

this.notify = await notificationHelper.progress(this.action, 'Operation started', this.taskId);

and the frontend toasts it verbatim — frontend/src/app/components/notification/notification.component.ts:91-92:

toastProgress(notification: any) {
    this.toastService.info(notification.message, notification.action);
}

this.action is the TaskAction (e.g. Migrate data). Nothing is wrong with the mechanism, but the result is a toast that carries no information.

2. A failed policy search is reported twice

Searching for a remote policy that fails shows the same error twice — inline in the Search Policy dialog and as a global toast.

frontend/src/app/modules/policy-engine/dialogs/search-external-policy-dialog/search-external-policy-dialog.component.ts handles the HTTP error itself and sets an inline message (this.error = e?.error?.message, :48/:70), rendered in the dialog body. Meanwhile the global HandleErrorsService interceptor toasts every HTTP error, so MESSAGE_NOT_FOUND: Message 1 could not be retrieved… also appears as a "404 Other Error" toast.

There is already a mechanism for this: SILENT_HTTP_ERRORS (frontend/src/app/constants/http-context-tokens.ts), which the interceptor checks and which branding.service and auth.service already use for requests they handle themselves.

Reproduce

  1. Start a data migration → blue "Operation started" toast that does not say what started.
  2. Manage Policies → Remote Policies → Search, with a message id that fails → the same error inline and as a toast.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions