diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js
index 6b946fec548a3af98f8c6b8ef90832c9f25af4a4..f4b9a4cfdd1c798837bc7e724f60175446e24160 100644
--- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js
+++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js
@@ -74,7 +74,7 @@ module.exports = models => async (req, res) => {
       if (!['pendingApproval', 'revisionRequested'].includes(collection.status))
         collectionHelper.updateStatus({ newStatus: 'reviewCompleted' })
     }
-
+    await fragment.save()
     return res.status(200).json(recommendation)
   } catch (e) {
     const notFoundError = await services.handleNotFoundError(e, 'Item')
diff --git a/packages/component-manuscript/src/components/ManuscriptDetails.js b/packages/component-manuscript/src/components/ManuscriptDetails.js
index df5e50181ab2ca80665c94378130903321deed7e..5c8545b657c15853562e220dfe4b00babe969607 100644
--- a/packages/component-manuscript/src/components/ManuscriptDetails.js
+++ b/packages/component-manuscript/src/components/ManuscriptDetails.js
@@ -7,8 +7,12 @@ import { Authors, Files } from './'
 import { Expandable } from '../molecules/'
 
 const ManuscriptDetails = ({
-  collection: { authors = [] },
-  fragment: { conflicts = {}, files = {}, metadata: { abstract = '' } },
+  fragment: {
+    files = {},
+    authors = [],
+    conflicts = {},
+    metadata: { abstract = '' },
+  },
 }) => (
   <Root>
     <Expandable label="Details" startExpanded>
diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js
index ea6b9532eb0b048a250ae750f0d4c6357c9faf44..5e7bd4c017e862900b89638464578577eefbfe9d 100644
--- a/packages/component-manuscript/src/components/ManuscriptLayout.js
+++ b/packages/component-manuscript/src/components/ManuscriptLayout.js
@@ -53,7 +53,7 @@ const ManuscriptLayout = ({
             project={project}
             version={version}
           />
-          <ManuscriptDetails collection={project} fragment={version} />
+          <ManuscriptDetails fragment={version} />
           <ReviewsAndReports project={project} version={version} />
           {canSeeEditorialComments &&
             editorialRecommendations.length > 0 && (
diff --git a/packages/component-manuscript/src/components/utils.js b/packages/component-manuscript/src/components/utils.js
index ed5e3885bbfad9c55e488500582ab05c8ed6ca66..f3aefdd957a6371e2e4b5d46f90fe900b20c85c6 100644
--- a/packages/component-manuscript/src/components/utils.js
+++ b/packages/component-manuscript/src/components/utils.js
@@ -1,5 +1,5 @@
 import moment from 'moment'
-import { get, find, capitalize, omit, isEmpty, isEqual, debounce } from 'lodash'
+import { get, find, capitalize, omit, isEmpty, debounce } from 'lodash'
 
 import { actions } from 'pubsweet-client/src'
 import { change as changeForm } from 'redux-form'
@@ -137,25 +137,23 @@ const onChange = (
   values,
   dispatch,
   { project, version, createRecommendation, updateRecommendation },
-  previousValues,
 ) => {
   const newValues = parseReviewRequest(values)
-  const prevValues = parseReviewRequest(previousValues)
-  if (!isEqual(newValues, prevValues)) {
-    dispatch(autosaveRequest())
-    if (newValues.id) {
-      updateRecommendation(project.id, version.id, newValues)
-        .then(r => dispatch(autosaveSuccess(get(r, 'updatedOn'))))
-        .catch(e => dispatch(autosaveFailure(e)))
-    } else {
-      createRecommendation(project.id, version.id, newValues)
-        .then(r => {
-          dispatch(changeForm('reviewerReport', 'id', r.id))
-          return dispatch(autosaveSuccess(get(r, 'updatedOn')))
-        })
-        .catch(e => dispatch(autosaveFailure(e)))
-    }
+  // if (!isEqual(newValues, prevValues)) {
+  dispatch(autosaveRequest())
+  if (newValues.id) {
+    updateRecommendation(project.id, version.id, newValues)
+      .then(r => dispatch(autosaveSuccess(get(r, 'updatedOn'))))
+      .catch(e => dispatch(autosaveFailure(e)))
+  } else {
+    createRecommendation(project.id, version.id, newValues)
+      .then(r => {
+        dispatch(changeForm('reviewerReport', 'id', r.id))
+        return dispatch(autosaveSuccess(get(r, 'updatedOn')))
+      })
+      .catch(e => dispatch(autosaveFailure(e)))
   }
+  // }
 }
 
 export const onReviewChange = debounce(onChange, 1000, { maxWait: 5000 })
@@ -183,7 +181,7 @@ export const onReviewSubmit = (
       updateRecommendation(project.id, version.id, newValues)
         .then(r => dispatch(autosaveSuccess(get(r, 'updatedOn'))))
         .then(() => {
-          dispatch(actions.getFragments())
+          dispatch(actions.getFragments({ id: project.id }))
           hideModal()
         })
     },
diff --git a/packages/component-wizard/src/components/WizardFormStep.js b/packages/component-wizard/src/components/WizardFormStep.js
index d5e71660176306c455f4cb3af9d443c9c8310df6..5579434a313269425ecd33382e621faf1ea44dd1 100644
--- a/packages/component-wizard/src/components/WizardFormStep.js
+++ b/packages/component-wizard/src/components/WizardFormStep.js
@@ -73,13 +73,19 @@ const submitFragmentRevision = ({
   history,
   redirectPath = '/',
 }) => {
-  submitRevision(project.id, version.id).then(() => {
-    history.push(redirectPath, {
-      project: project.id,
-      customId: project.customId,
-      version: version.id,
+  submitRevision(project.id, version.id)
+    .then(() => {
+      history.push(redirectPath, {
+        project: project.id,
+        customId: project.customId,
+        version: version.id,
+      })
+    })
+    .catch(error => {
+      if (error.validationErrors) {
+        throw new SubmissionError()
+      }
     })
-  })
 }
 
 const onSubmit = (
diff --git a/packages/components-faraday/src/components/Dashboard/DashboardCard.js b/packages/components-faraday/src/components/Dashboard/DashboardCard.js
index ae4c120f523173860f19fb00bb4352a05c9fb97e..7709aa3418c42aee34cc782d7231e91d97499a4f 100644
--- a/packages/components-faraday/src/components/Dashboard/DashboardCard.js
+++ b/packages/components-faraday/src/components/Dashboard/DashboardCard.js
@@ -143,7 +143,7 @@ const DashboardCard = ({
         project.status !== 'draft' && (
           <DetailsView>
             <Top>
-              <AuthorsWithTooltip authors={project.authors} />
+              <AuthorsWithTooltip authors={version.authors} />
             </Top>
             <Bottom>
               <LeftDetails flex={4}>
diff --git a/packages/components-faraday/src/components/Files/Files.js b/packages/components-faraday/src/components/Files/Files.js
index 4294b9198bb8f27f007f50a7141bca3c907d3e9e..3055f5a4f0c48093552b4ef43752181d413015f3 100644
--- a/packages/components-faraday/src/components/Files/Files.js
+++ b/packages/components-faraday/src/components/Files/Files.js
@@ -1,4 +1,4 @@
-import React from 'react'
+import React, { Fragment } from 'react'
 import { th } from '@pubsweet/ui'
 import PropTypes from 'prop-types'
 import { get, isEqual } from 'lodash'
@@ -6,6 +6,7 @@ import { connect } from 'react-redux'
 import styled from 'styled-components'
 import { withRouter } from 'react-router-dom'
 import { change as changeForm } from 'redux-form'
+import { selectCurrentVersion } from 'xpub-selectors'
 import {
   compose,
   lifecycle,
@@ -35,7 +36,7 @@ const Files = ({
   isRevisionFlow,
   dropSortableFile,
 }) => (
-  <div>
+  <Fragment>
     <Error show={error}> File error, please try again.</Error>
     <FileSection
       addFile={addFile('manuscripts')}
@@ -89,12 +90,11 @@ const Files = ({
         title="Response to reviewers"
       />
     )}
-  </div>
+  </Fragment>
 )
 
 export default compose(
   getContext({
-    version: PropTypes.object,
     project: PropTypes.object,
   }),
   withRouter,
@@ -102,6 +102,7 @@ export default compose(
     (state, { project, version }) => ({
       error: getFileError(state),
       isFetching: getRequestStatus(state),
+      version: selectCurrentVersion(state, project),
       isRevisionFlow: isRevisionFlow(state, project, version),
     }),
     {