cleaned up exception handling to ensure we re-render upon failure