diff --git a/packages/component-faraday-ui/src/PublonsTable.js b/packages/component-faraday-ui/src/PublonsTable.js
index b3026109d7f1b5a809d236a4730d81f5f16240a1..d11c7d479ecb15cc49cbfe9d7ef2938335e444ce 100644
--- a/packages/component-faraday-ui/src/PublonsTable.js
+++ b/packages/component-faraday-ui/src/PublonsTable.js
@@ -7,8 +7,20 @@ import { compose, withHandlers, withProps } from 'recompose'
 
 import { Label, OpenModal, Text, withFetching } from '../'
 
-const TableView = ({ reviewers, onInviteReviewer, setFetching, isFetching }) =>
-  reviewers.length === 0 ? (
+const TableView = ({
+  reviewers,
+  onInviteReviewer,
+  setFetching,
+  isFetching,
+  publonsError,
+}) => {
+  if (publonsError)
+    return (
+      <Text align="center" error>
+        {publonsError}
+      </Text>
+    )
+  return reviewers.length === 0 ? (
     <Text align="center">No suggestions yet.</Text>
   ) : (
     <Table>
@@ -58,6 +70,7 @@ const TableView = ({ reviewers, onInviteReviewer, setFetching, isFetching }) =>
       </tbody>
     </Table>
   )
+}
 
 const PublonsTable = ({ publonsFetching, ...rest }) => (
   <Fragment>{publonsFetching ? <Spinner /> : <TableView {...rest} />}</Fragment>
diff --git a/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js b/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js
index d521f0084fc105ec59973cc19f927c9ed8063ed9..832aa7d1072f894aefcacd650c055edf2e3ac819 100644
--- a/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js
+++ b/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js
@@ -29,6 +29,7 @@ const ReviewerDetails = ({
   isFetching,
   previewFile,
   downloadFile,
+  fetchingError,
   canInviteReviewers,
   onInviteReviewer,
   onInvitePublonReviewer,
@@ -93,6 +94,7 @@ const ReviewerDetails = ({
               {selectedTab === 1 && (
                 <PublonsTable
                   onInvite={onInvitePublonReviewer}
+                  publonsError={fetchingError}
                   publonsFetching={isFetching}
                   reviewers={publonReviewers}
                 />
diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js
index d5e49b31fe9903b0851c6061fc5f7a3762ed3b91..1309a3f39bc352b61bb5384e28536f3b66c9abc8 100644
--- a/packages/component-manuscript/src/components/ManuscriptLayout.js
+++ b/packages/component-manuscript/src/components/ManuscriptLayout.js
@@ -44,6 +44,7 @@ const ManuscriptLayout = ({
   fragment = {},
   changeForm,
   isFetching,
+  fetchingError,
   formValues,
   heExpanded,
   onHEResponse,
@@ -175,6 +176,7 @@ const ManuscriptLayout = ({
         {get(currentUser, 'permissions.canViewReviewersDetails', false) && (
           <ReviewerDetails
             currentUser={currentUser}
+            fetchingError={fetchingError}
             fragment={fragment}
             getSignedUrl={getSignedUrl}
             invitations={invitationsWithReviewers}
diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js
index 1571fe5b0a0654774ab052f07349b2de052bccc3..3f4f4a7437d25889c053eb34ff44b0982bd991b8 100644
--- a/packages/component-manuscript/src/components/ManuscriptPage.js
+++ b/packages/component-manuscript/src/components/ManuscriptPage.js
@@ -65,7 +65,7 @@ import {
   parseEicDecision,
   parseSearchParams,
   redirectToError,
-  handlePublons,
+  getPublonsReviewers,
 } from './utils'
 import {
   canAssignHE,
@@ -395,6 +395,8 @@ export default compose(
       fetchUpdatedCollection,
       setPublons,
       setFetching: setListFetching,
+      setError,
+      clearError,
     }) => (values, { hideModal, setModalError, setFetching }) => {
       setFetching(true)
       inviteReviewer({
@@ -407,10 +409,12 @@ export default compose(
           setFetching(false)
           hideModal()
           fetchUpdatedCollection()
-          handlePublons({
+          getPublonsReviewers({
             fragmentId: fragment.id,
             setPublons,
             setFetching: setListFetching,
+            setError,
+            clearError,
           })
         })
         .catch(err => {
@@ -459,6 +463,8 @@ export default compose(
           permissions: { canInviteReviewers },
         },
         setFetching,
+        setError,
+        clearError,
       } = this.props
 
       if (hasManuscriptFailure) {
@@ -481,7 +487,13 @@ export default compose(
       )
 
       if (canInviteReviewers) {
-        handlePublons({ fragmentId, setPublons, setFetching })
+        getPublonsReviewers({
+          fragmentId,
+          setPublons,
+          setFetching,
+          setError,
+          clearError,
+        })
       }
 
       if (isInvitedHE) {
diff --git a/packages/component-manuscript/src/components/utils.js b/packages/component-manuscript/src/components/utils.js
index 4f3b76680cb4eff0714bee57a96fef7f5a1d9649..2ce76ae2a889b405adfad70f9078241bd7e58276 100644
--- a/packages/component-manuscript/src/components/utils.js
+++ b/packages/component-manuscript/src/components/utils.js
@@ -306,13 +306,22 @@ export const parseEicDecision = ({ decision, message }) => ({
 })
 
 // handle publons
-export const getPublons = fragmentId =>
+export const getPublonsAPI = fragmentId =>
   apiGet(`/fragments/${fragmentId}/publons`)
 
-export const handlePublons = ({ fragmentId, setPublons, setFetching }) => {
+export const getPublonsReviewers = ({
+  fragmentId,
+  setPublons,
+  setFetching,
+  setError,
+  clearError,
+}) => {
+  clearError()
   setFetching(true)
-  getPublons(fragmentId).then(res => {
-    setPublons(res)
-    setFetching(false)
-  })
+  getPublonsAPI(fragmentId)
+    .then(res => {
+      setPublons(res)
+      setFetching(false)
+    })
+    .catch(handleError(setError))
 }