use JSON error pages; fixes #39