diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
index 64865ee07072344619e2671dcda78c7fc76ddcea..1f0050e3153f5b89e302140577dbb34df77df504 100644
--- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
+++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
@@ -20,14 +20,12 @@ module.exports = models => async (req, res) => {
     collection = await models.Collection.find(collectionId)
     if (!collection.fragments.includes(fragmentId))
       return res.status(400).json({
-        error: `collection ${
-          collection.id
-        } does not contain fragment ${fragmentId}.`,
+        error: `Collection and fragment do not match.`,
       })
 
     fragment = await models.Fragment.find(fragmentId)
   } catch (e) {
-    const notFoundError = await helpers.handleNotFoundError(e, 'item')
+    const notFoundError = await helpers.handleNotFoundError(e, 'Item')
     return res.status(notFoundError.status).json({
       error: notFoundError.message,
     })
diff --git a/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/post.test.js b/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/post.test.js
index e861ff55a78853be5a91002024c41a69afc1a8ae..1bc3506019b290db9b0dea571f22a454e18002f2 100644
--- a/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/post.test.js
+++ b/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/post.test.js
@@ -36,7 +36,7 @@ describe('Post collections invitations route handler', () => {
     body = cloneDeep(reqBody)
     models = Model.build(testFixtures)
   })
-  it('should return an error params are missing', async () => {
+  it('should return an error when params are missing', async () => {
     const { reviewer } = testFixtures.users
     delete body.comments
     const res = await requests.sendRequest({
@@ -70,4 +70,42 @@ describe('Post collections invitations route handler', () => {
     const data = JSON.parse(res._getData())
     expect(data.userId).toEqual(reviewer.id)
   })
+  it('should return an error when the fragmentId does not match the collectionId', async () => {
+    const { reviewer } = testFixtures.users
+    const { collection } = testFixtures.collections
+    const { fragment } = testFixtures.fragments
+    collection.fragments.length = 0
+    const res = await requests.sendRequest({
+      body,
+      userId: reviewer.id,
+      models,
+      path,
+      params: {
+        collectionId: collection.id,
+        fragmentId: fragment.id,
+      },
+    })
+
+    expect(res.statusCode).toBe(400)
+    const data = JSON.parse(res._getData())
+    expect(data.error).toEqual('Collection and fragment do not match.')
+  })
+  it('should return an error when the collection does not exist', async () => {
+    const { reviewer } = testFixtures.users
+    const { fragment } = testFixtures.fragments
+    const res = await requests.sendRequest({
+      body,
+      userId: reviewer.id,
+      models,
+      path,
+      params: {
+        collectionId: 'invalid-id',
+        fragmentId: fragment.id,
+      },
+    })
+
+    expect(res.statusCode).toBe(404)
+    const data = JSON.parse(res._getData())
+    expect(data.error).toEqual('Item not found')
+  })
 })