add error handling with forward -> redirect -> get pattern