diff --git a/packages/components-faraday/src/components/SignUp/FormItems.js b/packages/components-faraday/src/components/SignUp/FormItems.js
index 26db2ecb4473a8ce079a968a741f98d19c30a7bb..22089ca2c007dc4899737333d059efa744b5f0bd 100644
--- a/packages/components-faraday/src/components/SignUp/FormItems.js
+++ b/packages/components-faraday/src/components/SignUp/FormItems.js
@@ -22,7 +22,7 @@ export const Title = styled.div`
 `
 export const Subtitle = styled.div`
   font-family: ${th('fontReading')};
-  font-size: ${th('fontSizeBaseSmall')};
+  font-size: ${th('fontSizeBase')};
   font-weight: normal;
   margin: 10px auto;
   text-align: center;
@@ -56,8 +56,10 @@ export const Label = styled.div`
   font-size: ${th('fontSizeBaseSmall')};
   text-transform: uppercase;
 `
-export const Err = styled.div`
+export const Err = styled.span`
   color: ${th('colorError')};
+  font-family: ${th('fontReading')};
+  font-size: ${th('fontSizeBase')};
   margin-top: calc(${th('gridUnit')}*-1);
-  text-align: left;
+  text-align: center;
 `
diff --git a/packages/components-faraday/src/components/SignUp/ReviewerInviteDecision.js b/packages/components-faraday/src/components/SignUp/ReviewerInviteDecision.js
index c6db91452b20104118524357941cdaaf968326f9..46ba56380206cb4c65942074eb1ca48a5df4596e 100644
--- a/packages/components-faraday/src/components/SignUp/ReviewerInviteDecision.js
+++ b/packages/components-faraday/src/components/SignUp/ReviewerInviteDecision.js
@@ -1,12 +1,12 @@
 import React from 'react'
 import { get } from 'lodash'
 import { connect } from 'react-redux'
-import { reduxForm, SubmissionError } from 'redux-form'
 import { push } from 'react-router-redux'
 import { required, minChars } from 'xpub-validators'
-import { compose, withState, lifecycle } from 'recompose'
+import { reduxForm, SubmissionError } from 'redux-form'
 import { loginUser } from 'pubsweet-component-login/actions'
 import { Button, ValidatedField, TextField } from '@pubsweet/ui'
+import { compose, withState, lifecycle, withHandlers } from 'recompose'
 
 import {
   Row,
@@ -23,6 +23,7 @@ import { reviewerDecision, setReviewerPassword } from '../../redux/reviewers'
 
 const agreeText = `You have been invited to review a manuscript on the Hindawi platform. Please set a password and proceed to the manuscript.`
 const declineText = `You have decline to work on a manuscript.`
+const alreadyDeclined = `You have already declined to work on this manuscript.`
 
 const min8Chars = minChars(8)
 const ReviewerInviteDecision = ({
@@ -30,10 +31,12 @@ const ReviewerInviteDecision = ({
   error,
   reviewerEmail,
   agree,
+  errorMessage,
+  renderSubtitle,
 }) => (
   <RootContainer>
     <Title>Hindawi Invitation</Title>
-    <Subtitle>{agree === 'true' ? agreeText : declineText}</Subtitle>
+    <Subtitle>{renderSubtitle()}</Subtitle>
     <Email>{reviewerEmail}</Email>
     {agree === 'true' && (
       <FormContainer onSubmit={handleSubmit}>
@@ -61,11 +64,11 @@ const ReviewerInviteDecision = ({
         </Row>
       </FormContainer>
     )}
-    {agree === 'false' && <div>nu i-a placut</div>}
   </RootContainer>
 )
 
 export default compose(
+  withState('errorMessage', 'setError', ''),
   withState('reviewerEmail', 'setEmail', ''),
   connect(null, { push, loginUser, setReviewerPassword, reviewerDecision }),
   lifecycle({
@@ -73,6 +76,7 @@ export default compose(
       const {
         agree,
         email,
+        setError,
         setEmail,
         collectionId,
         invitationId,
@@ -81,8 +85,26 @@ export default compose(
       setEmail(email)
 
       if (agree === 'false') {
-        reviewerDecision(invitationId, collectionId, false)
+        reviewerDecision(invitationId, collectionId, false).catch(err => {
+          const errorText = get(JSON.parse(err.response), 'error')
+          if (errorText.includes('has already been answered')) {
+            setError(alreadyDeclined)
+          } else {
+            setError('Oops! Something went wrong.')
+          }
+        })
+      }
+    },
+  }),
+  withHandlers({
+    renderSubtitle: ({ agree, errorMessage }) => () => {
+      if (agree === 'true') {
+        return agreeText
+      }
+      if (errorMessage) {
+        return errorMessage
       }
+      return declineText
     },
   }),
   reduxForm({