diff --git a/src/remote/activitypub/models/person.ts b/src/remote/activitypub/models/person.ts
index 4ff8d23be7..c292d02419 100644
--- a/src/remote/activitypub/models/person.ts
+++ b/src/remote/activitypub/models/person.ts
@@ -14,6 +14,34 @@ import htmlToMFM from '../../../mfm/html-to-mfm';
 
 const log = debug('misskey:activitypub');
 
+function validatePerson(x: any) {
+	if (x == null) {
+		return new Error('invalid person: object is null');
+	}
+
+	if (x.type != 'Person' && x.type != 'Service') {
+		return new Error(`invalid person: object is not a person or service '${x.type}'`);
+	}
+
+	if (typeof x.preferredUsername !== 'string') {
+		return new Error('invalid person: preferredUsername is not a string');
+	}
+
+	if (typeof x.inbox !== 'string') {
+		return new Error('invalid person: inbox is not a string');
+	}
+
+	if (!validateUsername(x.preferredUsername)) {
+		return new Error('invalid person: invalid username');
+	}
+
+	if (!isValidName(x.name == '' ? null : x.name)) {
+		return new Error('invalid person: invalid name');
+	}
+
+	return null;
+}
+
 /**
  * Personをフェッチします。
  *
@@ -47,28 +75,10 @@ export async function createPerson(value: any, resolver?: Resolver): Promise<IUs
 
 	const object = await resolver.resolve(value) as any;
 
-	if (object == null) {
-		throw new Error('invalid person: object is null');
-	}
+	const err = validatePerson(object);
 
-	if (object.type != 'Person' && object.type != 'Service') {
-		throw new Error(`invalid person: object is not a person or service '${object.type}'`);
-	}
-
-	if (typeof object.preferredUsername !== 'string') {
-		throw new Error('invalid person: preferredUsername is not a string');
-	}
-
-	if (typeof object.inbox !== 'string') {
-		throw new Error('invalid person: inbox is not a string');
-	}
-
-	if (!validateUsername(object.preferredUsername)) {
-		throw new Error('invalid person: invalid username');
-	}
-
-	if (!isValidName(object.name == '' ? null : object.name)) {
-		throw new Error('invalid person: invalid name');
+	if (err) {
+		throw err;
 	}
 
 	const person: IPerson = object;
@@ -198,12 +208,10 @@ export async function updatePerson(value: string | IObject, resolver?: Resolver)
 
 	const object = await resolver.resolve(value) as any;
 
-	if (
-		object == null ||
-		object.type !== 'Person'
-	) {
-		log(`invalid person: ${JSON.stringify(object, null, 2)}`);
-		throw new Error('invalid person');
+	const err = validatePerson(object);
+
+	if (err) {
+		throw err;
 	}
 
 	const person: IPerson = object;