Backend handlers now return errors through a shared apperr catalog instead of ad-hoc strings, so every error has a stable code, a human message, and a request ID. The frontend API client understands this new error shape and surfaces the code/request ID to callers so error messages (and support requests) are more useful.