Aman-Mittal opened a new issue, #577:
URL: https://github.com/apache/fineract-backoffice-ui/issues/577
Opening a detail route for an id that does not exist leaves the operator on
an empty screen with no explanation and no way forward.
> **Screenshot:** _`/clients/view/99999` at 1280 px, dark theme — empty
content area, toast at the bottom._ (attached below)
## What happens
Navigating to `/clients/view/99999`:
1. The content area renders the breadcrumb and nothing else.
`main.content-area` contains **21 characters** of text in total —
`"ClientsClient Details"`.
2. A toast appears at the bottom of the viewport, then **auto-dismisses**.
3. After it goes, the screen is blank. No message, no retry, no link back to
the list. The breadcrumb still reads *Client Details* for a client that does
not exist.
## The toast leaks backend copy
The toast body is:
```
The requested resource is not available.
• [id] Client not found with valuer 99999.
```
Two problems with showing this to an operator:
- `[id]` is the API's field-name prefix, not something a user should read;
- *"valuer"* is a typo carried straight through from the platform's error
message.
The UI is echoing the error payload rather than mapping the error to its own
copy.
## Suggested fix
- Render a persistent in-content state when the record cannot be loaded — a
short explanation ("This client doesn't exist, or you don't have permission to
view it") plus a **Back to clients** action. A transient toast is the wrong
channel for a terminal state, because the information disappears while the
broken screen stays.
- Map API error codes to user-facing strings instead of printing the
payload's `defaultUserMessage` / parameter name.
- Consider the same treatment for the other `view/:id` routes (loans,
savings, groups, centres), which share the shape.
## Related
#223 covers the list case — a failed list load looking identical to an empty
list. This is the detail-route counterpart: a failed *record* load looking
identical to a page that simply has no content. Likely worth one shared
error/empty component across both.
## Reproduction
1. Sign in.
2. Navigate to `/clients/view/99999`.
3. Observe the empty content area and the toast; wait for the toast to
dismiss.
## Tested against
Deployed build of `main`, Chrome, 1280x800.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]