diff --git a/src/server/api/endpoints/following/requests/cancel.ts b/src/server/api/endpoints/following/requests/cancel.ts
index 9bfc40ce65..c46b948d29 100644
--- a/src/server/api/endpoints/following/requests/cancel.ts
+++ b/src/server/api/endpoints/following/requests/cancel.ts
@@ -27,7 +27,11 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) =
 		return rej('followee not found');
 	}
 
-	await cancelFollowRequest(followee, user);
+	try {
+		await cancelFollowRequest(followee, user);
+	} catch (e) {
+		return rej(e);
+	}
 
 	// Send response
 	res(await pack(followee._id, user));
diff --git a/src/services/following/requests/cancel.ts b/src/services/following/requests/cancel.ts
index b0b574da58..26e4544d5c 100644
--- a/src/services/following/requests/cancel.ts
+++ b/src/services/following/requests/cancel.ts
@@ -12,6 +12,15 @@ export default async function(followee: IUser, follower: IUser) {
 		deliver(follower as ILocalUser, content, followee.inbox);
 	}
 
+	const request = await FollowRequest.findOne({
+		followeeId: followee._id,
+		followerId: follower._id
+	});
+
+	if (request == null) {
+		throw 'request not found';
+	}
+
 	await FollowRequest.remove({
 		followeeId: followee._id,
 		followerId: follower._id