diff --git a/app/components/Editor/components/Heading.js b/app/components/Editor/components/Heading.js
index f839866ad..07460e895 100644
--- a/app/components/Editor/components/Heading.js
+++ b/app/components/Editor/components/Heading.js
@@ -27,6 +27,7 @@ function Heading(props: Props) {
readOnly,
children,
component = 'h1',
+ className,
attributes,
className,
} = props;
diff --git a/app/components/ErrorBoundary/ErrorBoundary.js b/app/components/ErrorBoundary/ErrorBoundary.js
new file mode 100644
index 000000000..7577017a9
--- /dev/null
+++ b/app/components/ErrorBoundary/ErrorBoundary.js
@@ -0,0 +1,42 @@
+// @flow
+import React, { Component } from 'react';
+import { observer } from 'mobx-react';
+import { observable } from 'mobx';
+import CenteredContent from 'components/CenteredContent';
+import PageTitle from 'components/PageTitle';
+
+@observer
+class ErrorBoundary extends Component {
+ @observable error: boolean = false;
+
+ componentDidCatch(error: Error, info: Object) {
+ this.error = true;
+
+ // Error handler is often blocked by the browser
+ if (window.Bugsnag) {
+ Bugsnag.notifyException(error, { react: info });
+ }
+ }
+
+ handleReload = () => {
+ window.location.reload();
+ };
+
+ render() {
+ if (this.error) {
+ return (
+
+ An unrecoverable error occurred. Please try{' '}
+ reloading.
+ Something went wrong
+