Content
View differences
Updated by Alexander Coles 3 days ago
Currently, when the request for a turbo frame/stream fails, the content to be replaced simply shows a "Content missing" error message.
This needs to be replaced by a better error message.
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/70086/content">
## Coordination
This ticket owns useful, accessible user-facing failure feedback for Turbo Frames and Streams, including the replacement for "Content missing". Coordinate with #AGILE-393, which defines unsuccessful-stream rendering and fallback policy, to avoid duplicate messages and ensure loading/disabled state is restored.
#OP-20147 supplies shared Turbo request handling without redesigning that UX; #OP-20193 covers Angular transport integration. Turbo Frame navigation failures also need coverage because they may bypass the plain request helper.
#OP-20215 stops the global `turbo:frame-missing` listener from revisiting failed responses, so failed frame requests will reach the "Content missing" state more often until this ticket lands. Widget load errors are the case covered by #OP-18551.
This needs to be replaced by a better error message.
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/70086/content">
## Coordination
This ticket owns useful, accessible user-facing failure feedback for Turbo Frames and Streams, including the replacement for "Content missing". Coordinate with #AGILE-393, which defines unsuccessful-stream rendering and fallback policy, to avoid duplicate messages and ensure loading/disabled state is restored.
#OP-20147 supplies shared Turbo request handling without redesigning that UX; #OP-20193 covers Angular transport integration. Turbo Frame navigation failures also need coverage because they may bypass the plain request helper.
#OP-20215 stops the global `turbo:frame-missing` listener from revisiting failed responses, so failed frame requests will reach the "Content missing" state more often until this ticket lands. Widget load errors are the case covered by #OP-18551.