diff --git a/src/api/drive/upload-from-url.ts b/src/api/drive/upload-from-url.ts
index 26c890d157..676586cd15 100644
--- a/src/api/drive/upload-from-url.ts
+++ b/src/api/drive/upload-from-url.ts
@@ -6,14 +6,18 @@ import * as tmp from 'tmp';
 import * as fs from 'fs';
 import * as request from 'request';
 
-const log = debug('misskey:common:drive:upload_from_url');
+const log = debug('misskey:drive:upload-from-url');
 
 export default async (url, user, folderId = null, uri = null): Promise<IDriveFile> => {
+	log(`REQUESTED: ${url}`);
+
 	let name = URL.parse(url).pathname.split('/').pop();
 	if (!validateFileName(name)) {
 		name = null;
 	}
 
+	log(`name: ${name}`);
+
 	// Create temp file
 	const path = await new Promise((res: (string) => void, rej) => {
 		tmp.file((e, path) => {
@@ -37,6 +41,8 @@ export default async (url, user, folderId = null, uri = null): Promise<IDriveFil
 
 	const driveFile = await create(user, path, name, null, folderId, false, uri);
 
+	log(`created: ${driveFile._id}`);
+
 	// clean-up
 	fs.unlink(path, (e) => {
 		if (e) log(e.stack);
diff --git a/src/index.ts b/src/index.ts
index 29c4f3431a..e35c917a44 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -30,6 +30,10 @@ const ev = new Xev();
 
 process.title = 'Misskey';
 
+if (process.env.NODE_ENV != 'production') {
+	process.env.DEBUG = 'misskey:*';
+}
+
 // https://github.com/Automattic/kue/issues/822
 require('events').EventEmitter.prototype._maxListeners = 256;
 
diff --git a/src/remote/activitypub/resolve-person.ts b/src/remote/activitypub/resolve-person.ts
index 28162497f3..c288a2f009 100644
--- a/src/remote/activitypub/resolve-person.ts
+++ b/src/remote/activitypub/resolve-person.ts
@@ -31,7 +31,7 @@ export default async (value, verifier?: string) => {
 	const user = await User.insert({
 		avatarId: null,
 		bannerId: null,
-		createdAt: Date.parse(object.published),
+		createdAt: Date.parse(object.published) || null,
 		description: summaryDOM.textContent,
 		followersCount: 0,
 		followingCount: 0,
@@ -55,14 +55,14 @@ export default async (value, verifier?: string) => {
 	const [avatarId, bannerId] = await Promise.all([
 		object.icon,
 		object.image
-	].map(async url => {
-		if (url === undefined) {
+	].map(async img => {
+		if (img === undefined) {
 			return null;
 		}
 
-		const img = await uploadFromUrl(url, user);
+		const file = await uploadFromUrl(img.url, user);
 
-		return img._id;
+		return file._id;
 	}));
 
 	User.update({ _id: user._id }, { $set: { avatarId, bannerId } });
diff --git a/src/remote/activitypub/resolver.ts b/src/remote/activitypub/resolver.ts
index de0bba2687..09a6e70056 100644
--- a/src/remote/activitypub/resolver.ts
+++ b/src/remote/activitypub/resolver.ts
@@ -1,6 +1,8 @@
-import { IObject } from "./type";
+import * as request from 'request-promise-native';
+import * as debug from 'debug';
+import { IObject } from './type';
 
-const request = require('request-promise-native');
+const log = debug('misskey:activitypub:resolver');
 
 export default class Resolver {
 	private history: Set<string>;
@@ -57,6 +59,8 @@ export default class Resolver {
 			throw new Error('invalid response');
 		}
 
+		log(`resolved: ${JSON.stringify(object)}`);
+
 		return object;
 	}
 }