diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/ReadmeHelper.java b/gitiles-servlet/src/main/java/com/google/gitiles/ReadmeHelper.java
index eee4d83..9a05f35 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/ReadmeHelper.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/ReadmeHelper.java
@@ -22,7 +22,6 @@
 import org.commonmark.node.Node;
 import org.eclipse.jgit.errors.CorruptObjectException;
 import org.eclipse.jgit.errors.IncorrectObjectTypeException;
-import org.eclipse.jgit.errors.LargeObjectException;
 import org.eclipse.jgit.errors.MissingObjectException;
 import org.eclipse.jgit.lib.Config;
 import org.eclipse.jgit.lib.Constants;
@@ -104,8 +103,15 @@
       }
 
       return new MarkdownToHtml(view, cfg, readmePath).setImageLoader(img).toSoyHtml(root);
-    } catch (LargeObjectException | IOException e) {
-      log.error(String.format("error rendering %s/%s", view.getRepositoryName(), readmePath), e);
+    } catch (RuntimeException | IOException err) {
+      log.error(
+          String.format(
+              "error rendering %s/%s %s:%s",
+              view.getHostName(),
+              view.getRepositoryName(),
+              view.getRevision(),
+              readmePath),
+          err);
       return null;
     }
   }
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
index c45e0e6..f4d9327 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
@@ -24,6 +24,7 @@
 import com.google.common.collect.Maps;
 import com.google.gitiles.DateFormatter.Format;
 import com.google.gson.reflect.TypeToken;
+import com.google.template.soy.data.SanitizedContent;
 
 import org.eclipse.jgit.errors.IncorrectObjectTypeException;
 import org.eclipse.jgit.http.server.ServletUtils;
@@ -171,7 +172,10 @@
             rootTree);
     readme.scanTree(rootTree);
     if (readme.isPresent()) {
-      return ImmutableMap.<String, Object>of("readmeHtml", readme.render());
+      SanitizedContent html = readme.render();
+      if (html != null) {
+        return ImmutableMap.<String, Object>of("readmeHtml", html);
+      }
     }
     return null;
   }
