Serious errors are shown as transient toasts and disappear before user can react (SZ-52)
rk@tigase.net opened 2 weeks ago

Summary

Fatal and serious errors are currently displayed using transient toaster notifications that disappear automatically after a few seconds. This makes it difficult or impossible for users to read, understand, or act on critical error information.

Problem

Toaster notifications work well for:

  • Success confirmations
  • Informational messages
  • Minor validation warnings

However, they are not appropriate for:

  • Fatal errors
  • Blocking validation failures
  • Backend/system errors
  • Errors that require user action or investigation

When a serious error is shown in a toaster:

  • The message disappears before the user can fully read it
  • The user cannot revisit or copy the error text
  • Important diagnostic context is lost
  • The UX feels unreliable and frustrating

This issue was observed during normal usage and explicitly noted during review.

Expected Behavior

  • Minor, non-blocking messages may continue to use transient toasters
  • Serious or fatal errors must be shown in a persistent UI element
  • The error message should remain visible until explicitly dismissed by the user
  • The user should have sufficient time to read and understand the error

Suggested UX Direction (non-binding)

One of the following (or equivalent):

  • Modal dialog requiring explicit dismissal
  • Inline error panel with a clear close action
  • Dedicated error banner that remains until acknowledged

The key requirement is persistence, not a specific UI component.

Acceptance Criteria

  • Serious errors are not auto-dismissed
  • Users can read and acknowledge error messages at their own pace
  • Transient toasters are reserved for non-critical messages only
  • No regression to current toaster-only behavior for fatal errors

Notes

This is a usability and reliability issue, not a backend or business-logic defect.

  • rk@tigase.net commented 2 weeks ago

    Estimated Effort

    Total estimate: 2.5 – 3.5 hours

    Breakdown

    • Analysis & classification of error types: 30–45 min
    • UX decision & wiring (toaster vs persistent error): 45–60 min
    • Frontend implementation (modal/banner component + wiring): 60–90 min
    • Regression testing & polish: 30 min

    This assumes:

    • No backend contract changes
    • Existing error messages are reused
    • Frontend already has a modal or banner component that can be reused or lightly adapted

    Work Log

    Investigation

    • Observed that fatal and blocking errors are displayed exclusively via transient toaster notifications
    • Confirmed that toasters auto-dismiss, causing loss of critical error information
    • Verified this behavior occurs during normal workflows and startup failures
    • Issue was explicitly noticed during review and impacts usability and diagnosability

    Root Cause

    • All error paths currently funnel through a single toaster-based notification mechanism
    • No distinction is made between informational messages and serious/fatal errors

    Fix Strategy

    • Introduce a severity distinction for frontend errors (e.g. INFO vs ERROR/FATAL)
    • Route serious errors to a persistent UI element (modal or banner)
    • Keep toaster notifications for non-critical messages only
    • Ensure persistent errors remain visible until explicitly dismissed by the user

    Validation

    • Confirm serious errors remain visible until acknowledged
    • Confirm minor messages still behave as transient toasters
    • Verify no regression in existing success/info flows

    Risk

    Low. Changes are isolated to frontend error handling and do not affect backend logic or data.

  • rk@tigase.net removed comment 2 weeks ago
  • rk@tigase.net commented 2 weeks ago

    Being fixed in an existing branch: feature/SZ-50-Issue-Management-UI

  • rk@tigase.net changed state to 'In Progress' 2 weeks ago
    Previous Value Current Value
    Open
    In Progress
  • rk@tigase.net commented 1 week ago

    Fixed and merged into wolnosc - I want to release issue get ui (which is already in wolnosc) and pull request workflow in tandem. Hence I have artificially blocked access to issue mgmt workflow.

  • rk@tigase.net changed state to 'Closed' 1 week ago
    Previous Value Current Value
    In Progress
    Closed
issue 1 of 1
Type
Bug
Priority
Blocker
Assignee
Version
1.0
Sprints
n/a
Customer
n/a
Issue Votes (0)
Watchers (3)
Reference
SZ-52
Please wait...
Page is in error, reload to recover