diff --git a/packages/component-faraday-selectors/src/index.js b/packages/component-faraday-selectors/src/index.js
index 144d06d425ec7bc68a548b38209772f49459b033..2ad7a635be95eb0525f033a1e8de8eecafe9edb8 100644
--- a/packages/component-faraday-selectors/src/index.js
+++ b/packages/component-faraday-selectors/src/index.js
@@ -65,25 +65,10 @@ export const canMakeDecision = (state, collection) => {
   return isEIC && status
 }
 
-const editorialStatuses = [
-  'rejected',
-  'published',
-  'pendingApproval',
-  'revisionRequested',
-]
-
-export const canSeeEditorialComments = (state, collectionId) => {
-  const collection = state.collections.find(c => c.id === collectionId)
-  const isStaff = currentUserIs(state, 'staff')
-  if (!isStaff) return false
-  if (editorialStatuses.includes(get(collection, 'status'))) return false
-  return true
-}
-
-export const getPubsweetError = state => get(state, 'error')
-
 export const canSeeReviewersReports = (state, collectionId) => {
   const isHE = isHEToManuscript(state, collectionId)
   const isEiC = currentUserIs(state, 'adminEiC')
   return isHE || isEiC
 }
+
+export const canSeeEditorialComments = canSeeReviewersReports
diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js
index ad31c596ca12353cde5542e16f7f0e4c3bfcc543..ea6b9532eb0b048a250ae750f0d4c6357c9faf44 100644
--- a/packages/component-manuscript/src/components/ManuscriptLayout.js
+++ b/packages/component-manuscript/src/components/ManuscriptLayout.js
@@ -1,6 +1,5 @@
 import React, { Fragment } from 'react'
 import { isEmpty } from 'lodash'
-import { Redirect } from 'react-router-dom'
 
 import {
   Root,
@@ -27,16 +26,13 @@ const ManuscriptLayout = ({
   history,
   currentUser,
   editorInChief,
-  pubsweetError,
   updateManuscript,
-  canSeeReviewersReports,
   canSeeEditorialComments,
   editorialRecommendations,
   project = {},
   version = {},
 }) => (
   <Root>
-    {pubsweetError && <Redirect to="not-found" />}
     {!isEmpty(project) && !isEmpty(version) ? (
       <Fragment>
         <Container flex={3}>
@@ -58,9 +54,7 @@ const ManuscriptLayout = ({
             version={version}
           />
           <ManuscriptDetails collection={project} fragment={version} />
-          {canSeeReviewersReports && (
-            <ReviewsAndReports project={project} version={version} />
-          )}
+          <ReviewsAndReports project={project} version={version} />
           {canSeeEditorialComments &&
             editorialRecommendations.length > 0 && (
               <EditorialComments
diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js
index 6825aef0a32ea3d3c45ca5fbe816b21d9f87f96b..df4b1eaac76cebaf609b4b5fe0d5768e25eb2979 100644
--- a/packages/component-manuscript/src/components/ManuscriptPage.js
+++ b/packages/component-manuscript/src/components/ManuscriptPage.js
@@ -20,6 +20,10 @@ import {
 } from 'recompose'
 import { getSignedUrl } from 'pubsweet-components-faraday/src/redux/files'
 import { reviewerDecision } from 'pubsweet-components-faraday/src/redux/reviewers'
+import {
+  hasManuscriptFailure,
+  clearCustomError,
+} from 'pubsweet-components-faraday/src/redux/errors'
 import { selectEditorialRecommendations } from 'pubsweet-components-faraday/src/redux/recommendations'
 import {
   getHandlingEditors,
@@ -28,11 +32,7 @@ import {
 
 import ManuscriptLayout from './ManuscriptLayout'
 import { parseSearchParams, redirectToError } from './utils'
-import {
-  getPubsweetError,
-  canSeeReviewersReports,
-  canSeeEditorialComments,
-} from '../../../component-faraday-selectors'
+import { canSeeEditorialComments } from '../../../component-faraday-selectors'
 
 export default compose(
   setDisplayName('ManuscriptPage'),
@@ -49,15 +49,11 @@ export default compose(
   connect(
     (state, { match }) => ({
       currentUser: selectCurrentUser(state),
-      pubsweetError: getPubsweetError(state),
       handlingEditors: selectHandlingEditors(state),
+      hasManuscriptFailure: hasManuscriptFailure(state),
       version: selectFragment(state, match.params.version),
       project: selectCollection(state, match.params.project),
       editorialRecommendations: selectEditorialRecommendations(state),
-      canSeeReviewersReports: canSeeReviewersReports(
-        state,
-        match.params.project,
-      ),
       canSeeEditorialComments: canSeeEditorialComments(
         state,
         match.params.project,
@@ -66,6 +62,7 @@ export default compose(
     {
       replace,
       getSignedUrl,
+      clearCustomError,
       reviewerDecision,
       getCollection: actions.getCollection,
       updateVersion: actions.updateFragment,
@@ -100,11 +97,19 @@ export default compose(
       const {
         match,
         replace,
+        history,
         location,
         getCollection,
         reviewerDecision,
         setEditorInChief,
+        clearCustomError,
+        hasManuscriptFailure,
       } = this.props
+      if (hasManuscriptFailure) {
+        history.push('/not-found')
+        clearCustomError()
+      }
+
       const collectionId = match.params.project
       const { agree, invitationId } = parseSearchParams(location.search)
       if (agree === 'true') {
diff --git a/packages/component-manuscript/src/components/ReviewsAndReports.js b/packages/component-manuscript/src/components/ReviewsAndReports.js
index 133f314ff9523e01e8b75bf5be344bb2a805d961..b498bf92a2eab8ad79f3071057a1adf539c29efd 100644
--- a/packages/component-manuscript/src/components/ReviewsAndReports.js
+++ b/packages/component-manuscript/src/components/ReviewsAndReports.js
@@ -16,7 +16,7 @@ import { selectRecommendations } from 'pubsweet-components-faraday/src/redux/rec
 
 import { Tabs, Expandable } from '../molecules'
 import { ReviewReportCard, ReviewerReportForm } from './'
-import { currentUserIs } from '../../../component-faraday-selectors'
+import { canSeeReviewersReports } from '../../../component-faraday-selectors'
 
 const getTabSections = (collectionId, reviewers, recommendations = []) => [
   {
@@ -47,16 +47,16 @@ const ReviewsAndReports = ({
   report,
   project,
   version,
-  isStaff,
   isReviewer,
   mappedReviewers,
   mappedRecommendations,
+  canSeeReviewersReports,
   review = {},
   reviewers = [],
   recommendations = [],
 }) => (
   <Fragment>
-    {isStaff && (
+    {canSeeReviewersReports && (
       <Root>
         <Expandable
           label="Reviewers & Reports"
@@ -102,10 +102,10 @@ export default compose(
   connect(
     (state, { project }) => ({
       reviewers: selectReviewers(state),
-      isStaff: currentUserIs(state, 'staff'),
       recommendations: selectRecommendations(state),
       fetchingReviewers: selectFetchingReviewers(state),
       isReviewer: currentUserIsReviewer(state, project.id),
+      canSeeReviewersReports: canSeeReviewersReports(state, project.id),
     }),
     { getCollectionReviewers },
   ),
@@ -130,8 +130,8 @@ export default compose(
   })),
   lifecycle({
     componentDidMount() {
-      const { getReviewers } = this.props
-      getReviewers()
+      const { getReviewers, canSeeReviewersReports } = this.props
+      canSeeReviewersReports && getReviewers()
     },
   }),
 )(ReviewsAndReports)
diff --git a/packages/components-faraday/src/components/Dashboard/DashboardCard.js b/packages/components-faraday/src/components/Dashboard/DashboardCard.js
index a3d0cd20d2644651a6b315085ba12117ee8c24c0..82f9a8698c43046994924dcc4e59c40b0a313043 100644
--- a/packages/components-faraday/src/components/Dashboard/DashboardCard.js
+++ b/packages/components-faraday/src/components/Dashboard/DashboardCard.js
@@ -59,45 +59,45 @@ const DashboardCard = ({
               title={title}
               dangerouslySetInnerHTML={{ __html: title }} // eslint-disable-line
             />
-          </LeftDetails>
-          <RightDetails flex={2}>
-            {canMakeDecision && (
-              <Decision
-                collectionId={project.id}
-                fragmentId={version.id}
-                modalKey={`decide-${version.id}`}
-              />
-            )}
-            {canMakeRecommendation && (
-              <Recommendation
+            <RightDetails flex="none">
+              {canMakeDecision && (
+                <Decision
+                  collectionId={project.id}
+                  fragmentId={version.id}
+                  modalKey={`decide-${version.id}`}
+                />
+              )}
+              {canMakeRecommendation && (
+                <Recommendation
+                  collectionId={project.id}
+                  fragmentId={version.id}
+                  modalKey={`recommend-${version.id}`}
+                />
+              )}
+              <ZipFiles
+                archiveName={`ID-${project.customId}`}
                 collectionId={project.id}
+                disabled={!hasFiles}
                 fragmentId={version.id}
-                modalKey={`recommend-${version.id}`}
-              />
-            )}
-            <ZipFiles
-              archiveName={`ID-${project.customId}`}
-              collectionId={project.id}
-              disabled={!hasFiles}
-              fragmentId={version.id}
-            >
-              <ClickableIcon disabled={!hasFiles}>
-                <Icon>download</Icon>
-              </ClickableIcon>
-            </ZipFiles>
-            {!project.status && (
-              <ActionButtons
-                data-test="button-resume-submission"
-                onClick={() =>
-                  history.push(
-                    `/projects/${project.id}/versions/${version.id}/submit`,
-                  )
-                }
               >
-                RESUME SUBMISSION
-              </ActionButtons>
-            )}
-          </RightDetails>
+                <ClickableIcon disabled={!hasFiles}>
+                  <Icon>download</Icon>
+                </ClickableIcon>
+              </ZipFiles>
+              {!project.status && (
+                <ActionButtons
+                  data-test="button-resume-submission"
+                  onClick={() =>
+                    history.push(
+                      `/projects/${project.id}/versions/${version.id}/submit`,
+                    )
+                  }
+                >
+                  RESUME SUBMISSION
+                </ActionButtons>
+              )}
+            </RightDetails>
+          </LeftDetails>
         </Top>
         <Bottom>
           <LeftDetails flex={3}>
@@ -215,6 +215,7 @@ const ActionButtons = styled(Button)`
   height: calc(${th('subGridUnit')} * 5);
   padding: calc(${th('subGridUnit')} / 2) ${th('subGridUnit')};
   text-align: center;
+  white-space: nowrap;
 `
 
 const LeftDetails = styled.div`
@@ -224,6 +225,7 @@ const LeftDetails = styled.div`
   justify-content: flex-start;
   flex: ${({ flex }) => flex || 1};
   flex-wrap: wrap;
+  max-width: 100%;
 `
 
 const RightDetails = styled.div`
@@ -335,6 +337,7 @@ const Title = styled.div`
   white-space: nowrap;
   overflow: hidden;
   flex: 10;
+  padding-right: ${th('subGridUnit')};
 `
 
 const Status = styled.div`
diff --git a/packages/components-faraday/src/components/MakeDecision/Decision.js b/packages/components-faraday/src/components/MakeDecision/Decision.js
index a3a3b3b57f7b96f5cd33ab59990cd148fff55152..cf4279e1615dc66ec08c8deb6cd8fab98ca16207 100644
--- a/packages/components-faraday/src/components/MakeDecision/Decision.js
+++ b/packages/components-faraday/src/components/MakeDecision/Decision.js
@@ -58,5 +58,6 @@ const Root = styled.div`
   justify-content: center;
   padding: 0 calc(${th('subGridUnit')} * 2);
   text-transform: uppercase;
+  white-space: nowrap;
 `
 // #endregion
diff --git a/packages/components-faraday/src/components/MakeRecommendation/Recommendation.js b/packages/components-faraday/src/components/MakeRecommendation/Recommendation.js
index 22fd9321be9b047bfef9283f7a11f13e2510f5c8..10d7fc6d98a6a1f1ce932aa5b6622015eee59530 100644
--- a/packages/components-faraday/src/components/MakeRecommendation/Recommendation.js
+++ b/packages/components-faraday/src/components/MakeRecommendation/Recommendation.js
@@ -59,5 +59,6 @@ const Root = styled.div`
   min-width: 200px;
   padding: 0 calc(${th('subGridUnit')} * 2);
   text-transform: uppercase;
+  white-space: nowrap;
 `
 // #endregion
diff --git a/packages/components-faraday/src/index.js b/packages/components-faraday/src/index.js
index d21969e7b792fa03fadc8e92f38152c12935abb4..0eb9c3b474d2da621536bec68cbe2541141b9544 100644
--- a/packages/components-faraday/src/index.js
+++ b/packages/components-faraday/src/index.js
@@ -3,8 +3,9 @@ module.exports = {
     components: [() => require('./components')],
     reducers: {
       authors: () => require('./redux/authors').default,
-      files: () => require('./redux/files').default,
+      customError: () => require('./redux/errors').default,
       editors: () => require('./redux/editors').default,
+      files: () => require('./redux/files').default,
       reviewers: () => require('./redux/reviewers').default,
       recommendations: () => require('./redux/recommendations').default,
     },
diff --git a/packages/components-faraday/src/redux/errors.js b/packages/components-faraday/src/redux/errors.js
new file mode 100644
index 0000000000000000000000000000000000000000..00a4efa1c7f3c3fd27237a30ad9d5303fb5aab9e
--- /dev/null
+++ b/packages/components-faraday/src/redux/errors.js
@@ -0,0 +1,17 @@
+export const hasManuscriptFailure = state =>
+  state.customError === 'manuscriptFailure'
+
+export const clearCustomError = () => ({
+  type: 'CLEAR_CUSTOM_ERROR',
+})
+
+export default (state = '', action) => {
+  switch (action.type) {
+    case 'CLEAR_CUSTOM_ERROR':
+      return ''
+    case 'GET_FRAGMENT_FAILURE':
+      return 'manuscriptFailure'
+    default:
+      return state
+  }
+}
diff --git a/packages/components-faraday/src/redux/index.js b/packages/components-faraday/src/redux/index.js
index 12a9544f097bb4a8b08317dad23152255879d3fe..9e0c549f2498178e77b7c129e3ce4f0ee5c53bae 100644
--- a/packages/components-faraday/src/redux/index.js
+++ b/packages/components-faraday/src/redux/index.js
@@ -1,5 +1,6 @@
+export { default as files } from './files'
+export { default as errors } from './errors'
 export { default as authors } from './authors'
 export { default as editors } from './editors'
-export { default as files } from './files'
 export { default as reviewers } from './reviewers'
 export { default as recommendations } from './recommendations'