diff --git a/packages/component-manuscript/src/components/ManuscriptVersion.js b/packages/component-manuscript/src/components/ManuscriptVersion.js
index ddad835f7ccda0f60b9f15923105b039f3151d40..2ecebdcd8a4a4804f89d632273270a9233a4e353 100644
--- a/packages/component-manuscript/src/components/ManuscriptVersion.js
+++ b/packages/component-manuscript/src/components/ManuscriptVersion.js
@@ -8,7 +8,7 @@ import { withRouter } from 'react-router-dom'
 
 import { parseVersionOptions } from './utils'
 
-const ManuscriptVersion = ({ project, fragments, history, match }) => (
+const ManuscriptVersion = ({ project, fragments = [], history, match }) => (
   <Menu
     inline
     onChange={v =>
diff --git a/packages/component-manuscript/src/components/ReviewerReportForm.js b/packages/component-manuscript/src/components/ReviewerReportForm.js
index 3f8fe374cb496a6363c9657bc576a1a51f2ec3ad..a773c484f2a216dfa7da1a76c407a0ed5590e097 100644
--- a/packages/component-manuscript/src/components/ReviewerReportForm.js
+++ b/packages/component-manuscript/src/components/ReviewerReportForm.js
@@ -1,8 +1,17 @@
 import React, { Fragment } from 'react'
 import { connect } from 'react-redux'
 import { required } from 'xpub-validators'
+import { withJournal } from 'xpub-journal'
 import styled, { css } from 'styled-components'
-import { th, Menu, ValidatedField, Icon, Button, ErrorText } from '@pubsweet/ui'
+import {
+  th,
+  Menu,
+  ValidatedField,
+  Icon,
+  Button,
+  ErrorText,
+  Spinner,
+} from '@pubsweet/ui'
 import { compose, withHandlers, withProps } from 'recompose'
 import {
   reduxForm,
@@ -16,6 +25,8 @@ import {
   uploadFile,
   deleteFile,
   getSignedUrl,
+  getRequestStatus,
+  getFileError,
 } from 'pubsweet-components-faraday/src/redux/files'
 import {
   FileItem,
@@ -41,27 +52,9 @@ import {
 
 const guidelinesLink =
   'https://about.hindawi.com/authors/peer-review-at-hindawi/'
-const options = [
-  {
-    value: 'publish',
-    label: 'Publish unaltered',
-  },
-  {
-    value: 'major',
-    label: 'Consider after major revision',
-  },
-  {
-    value: 'minor',
-    label: 'Consider after major revision',
-  },
-  {
-    value: 'reject',
-    label: 'Reject',
-  },
-]
 
 const ReviewerReportForm = ({
-  error,
+  errorRequest,
   isSubmitting,
   changeField,
   handleSubmit,
@@ -70,6 +63,9 @@ const ReviewerReportForm = ({
   addFile,
   removeFile,
   previewFile,
+  fileFetching,
+  fileError,
+  journal: { recommendations },
 }) => (
   <Root>
     <Row>
@@ -85,7 +81,7 @@ const ReviewerReportForm = ({
             {...input}
             inline
             onChange={v => changeField('recommendation', v)}
-            options={options}
+            options={recommendations}
             placeholder="Select"
           />
         )}
@@ -96,12 +92,16 @@ const ReviewerReportForm = ({
     <Spacing />
     <Row left>
       <Label>Report</Label>
-      <FilePicker
-        allowedFileExtensions={['pdf', 'doc', 'docx']}
-        onUpload={addFile}
-      >
-        <ActionText left={12}>Upload file</ActionText>
-      </FilePicker>
+      {!fileFetching.review ? (
+        <FilePicker
+          allowedFileExtensions={['pdf', 'doc', 'docx']}
+          onUpload={addFile}
+        >
+          <ActionText left={12}>Upload file</ActionText>
+        </FilePicker>
+      ) : (
+        <Spinner size={2} />
+      )}
     </Row>
     <Row>
       <FullWidth>
@@ -115,12 +115,12 @@ const ReviewerReportForm = ({
             />
           )}
           name="public"
-          validate={[required]}
+          validate={[]}
         />
       </FullWidth>
     </Row>
     {formValues.files && (
-      <Row>
+      <Row left>
         {formValues.files.map(file => (
           <FileItem
             compact
@@ -173,9 +173,14 @@ const ReviewerReportForm = ({
     )}
 
     <Spacing />
-    {error && (
+    {fileError && (
+      <Row>
+        <ErrorText>{fileError}</ErrorText>
+      </Row>
+    )}
+    {errorRequest && (
       <Row>
-        <ErrorText>{error}</ErrorText>
+        <ErrorText>{errorRequest}</ErrorText>
       </Row>
     )}
     <Row>
@@ -198,10 +203,14 @@ const ModalWrapper = compose(
 ))
 
 export default compose(
+  withJournal,
   connect(
     state => ({
       formValues: getFormValues('reviewerReport')(state),
       isSubmitting: isSubmitting('reviewerReport')(state),
+      errorRequest: selectError(state),
+      fileFetching: getRequestStatus(state),
+      fileError: getFileError(state),
     }),
     {
       changeForm,
diff --git a/packages/component-manuscript/src/components/utils.js b/packages/component-manuscript/src/components/utils.js
index d6411a9a3b7e81a4d4cf42123d6729c7426e533f..6eb1902ca41ec81875e497ee9b23e10833941e3e 100644
--- a/packages/component-manuscript/src/components/utils.js
+++ b/packages/component-manuscript/src/components/utils.js
@@ -4,6 +4,7 @@ import { get, find, capitalize, omit, isEmpty, isEqual, debounce } from 'lodash'
 import {
   autosaveRequest,
   autosaveSuccess,
+  autosaveFailure,
 } from 'pubsweet-component-wizard/src/redux/autosave'
 
 export const parseTitle = version => {
@@ -105,7 +106,7 @@ export const parseReviewRequest = (review = {}) => {
   const comments = [
     {
       public: true,
-      content: review.public || '',
+      content: review.public || undefined,
       files: review.files || [],
     },
   ]
@@ -113,7 +114,7 @@ export const parseReviewRequest = (review = {}) => {
   if (review.hasConfidential) {
     comments.push({
       public: false,
-      content: review.confidential,
+      content: review.confidential || undefined,
       files: [],
     })
   }
@@ -142,13 +143,13 @@ const onChange = (
   if (!isEqual(newValues, prevValues) && !isEmpty(prevValues)) {
     dispatch(autosaveRequest())
     if (newValues.id) {
-      updateRecommendation(project.id, version.id, newValues).then(r =>
-        dispatch(autosaveSuccess(r.updatedOn)),
-      )
+      updateRecommendation(project.id, version.id, newValues)
+        .then(r => dispatch(autosaveSuccess(r.updatedOn)))
+        .catch(e => dispatch(autosaveFailure(e)))
     } else {
-      createRecommendation(project.id, version.id, newValues).then(r =>
-        dispatch(autosaveSuccess(r.updatedOn)),
-      )
+      createRecommendation(project.id, version.id, newValues)
+        .then(r => dispatch(autosaveSuccess(r.updatedOn)))
+        .catch(e => dispatch(autosaveFailure(e)))
     }
   }
 }
diff --git a/packages/components-faraday/src/components/Dashboard/HandlingEditorSection.js b/packages/components-faraday/src/components/Dashboard/HandlingEditorSection.js
index 914a4dfcca191c2b1ed317f2f5c9e17a1d17865d..6ea7ce628dcb2b18814516a475b369850b6071c0 100644
--- a/packages/components-faraday/src/components/Dashboard/HandlingEditorSection.js
+++ b/packages/components-faraday/src/components/Dashboard/HandlingEditorSection.js
@@ -21,7 +21,7 @@ const renderHE = (currentUser, project) => {
     return <HandlingEditorActions currentUser={currentUser} project={project} />
   }
 
-  return <AssignedHE>{get(handlingEditor, 'name')}</AssignedHE>
+  return <AssignedHE>{get(handlingEditor, 'name') || 'N/A'}</AssignedHE>
 }
 
 const HandlingEditorSection = ({ currentUser, project }) => (
diff --git a/packages/components-faraday/src/components/Files/FileItem.js b/packages/components-faraday/src/components/Files/FileItem.js
index 960781cb067ec9d5228709508a714466067b1cc0..e9676fb02d4ad3587338ff3d01c54b65c055abaa 100644
--- a/packages/components-faraday/src/components/Files/FileItem.js
+++ b/packages/components-faraday/src/components/Files/FileItem.js
@@ -57,7 +57,7 @@ const FileItem = ({
         {removeFile && (
           <IconButton onClick={removeFile(id)}>
             <Icon primary size={3}>
-              trash-2
+              x
             </Icon>
           </IconButton>
         )}
@@ -101,7 +101,7 @@ const Root = styled.div`
   align-items: center;
   border: ${th('borderDefault')};
   display: flex;
-  margin: 5px;
+  margin: ${th('subGridUnit')};
 `
 
 const Info = styled.div`
@@ -116,7 +116,7 @@ const Buttons = styled.div`
   align-items: center;
   display: flex;
   justify-content: center;
-  margin: 0 10px;
+  margin: 0 calc(${th('subGridUnit')}*2);
 
   a {
     align-items: center;
@@ -159,6 +159,7 @@ const FileRoot = styled.div`
   display: flex;
   flex-direction: row;
   margin-bottom: ${th('subGridUnit')};
+  margin-right: ${th('subGridUnit')};
   padding: ${th('subGridUnit')};
 `
 // #endregion
diff --git a/packages/components-faraday/src/redux/recommendations.js b/packages/components-faraday/src/redux/recommendations.js
index 38c278451bf32d80663a10ed55863b6341739b12..a86bfc4758accc0282602783c5927db65940cd0b 100644
--- a/packages/components-faraday/src/redux/recommendations.js
+++ b/packages/components-faraday/src/redux/recommendations.js
@@ -1,5 +1,4 @@
 import { get } from 'lodash'
-import { SubmissionError } from 'redux-form'
 import { create, update } from 'pubsweet-client/src/helpers/api'
 
 const REQUEST = 'recommendations/REQUEST'
@@ -61,9 +60,6 @@ export const createRecommendation = (
       if (error) {
         const errorMessage = get(JSON.parse(error), 'error')
         dispatch(recommendationsError(errorMessage))
-        throw new SubmissionError({
-          _error: errorMessage || 'Something went wrong',
-        })
       }
     },
   )
@@ -90,9 +86,6 @@ export const updateRecommendation = (
       if (error) {
         const errorMessage = get(JSON.parse(error), 'error')
         dispatch(recommendationsError(errorMessage))
-        throw new SubmissionError({
-          _error: errorMessage || 'Something went wrong',
-        })
       }
     },
   )
diff --git a/packages/xpub-faraday/app/config/journal/recommendations.js b/packages/xpub-faraday/app/config/journal/recommendations.js
index f65e0d670ba866846f46282045eb2225dde91878..4bcc3ff06eb99a2a2c4a184933b5ec0956f8f3db 100644
--- a/packages/xpub-faraday/app/config/journal/recommendations.js
+++ b/packages/xpub-faraday/app/config/journal/recommendations.js
@@ -1,17 +1,18 @@
 export default [
   {
-    color: 'green',
-    label: 'Accept',
-    value: 'accept',
+    value: 'publish',
+    label: 'Publish unaltered',
   },
   {
-    color: 'orange',
-    label: 'Revise',
-    value: 'revise',
+    value: 'major',
+    label: 'Consider after major revision',
+  },
+  {
+    value: 'minor',
+    label: 'Consider after major revision',
   },
   {
-    color: 'red',
-    label: 'Reject',
     value: 'reject',
+    label: 'Reject',
   },
 ]