diff --git a/src/api/bot/core.ts b/src/api/bot/core.ts
index 1f624c5f0a..4109519ca5 100644
--- a/src/api/bot/core.ts
+++ b/src/api/bot/core.ts
@@ -34,7 +34,7 @@ export default class BotCore extends EventEmitter {
 
 	public static import(data) {
 		const core = new BotCore();
-		core.user = data.user;
+		core.user = data.user ? data.user : null;
 		core.setContect(data.context ? Context.import(core, data.context) : null);
 		return core;
 	}
@@ -84,7 +84,7 @@ abstract class Context extends EventEmitter {
 }
 
 class SigninContext extends Context {
-	private temporaryUser: IUser;
+	private temporaryUser: IUser = null;
 
 	public async greet(): Promise<string> {
 		return 'まずユーザー名を教えてください:';
@@ -124,6 +124,7 @@ class SigninContext extends Context {
 
 	public export() {
 		return {
+			type: 'signin',
 			temporaryUser: this.temporaryUser
 		};
 	}
diff --git a/src/api/bot/interfaces/line.ts b/src/api/bot/interfaces/line.ts
index 61aa728121..52559eaeff 100644
--- a/src/api/bot/interfaces/line.ts
+++ b/src/api/bot/interfaces/line.ts
@@ -32,20 +32,16 @@ module.exports = async (app: express.Application) => {
 				}
 			});
 
-			if (user) {
-				session = new BotCore(user);
-			} else {
-				session = new BotCore();
-				session.on('set-user', user => {
-					User.update(user._id, {
-						$set: {
-							line: {
-								user_id: sourceId
-							}
+			session = new BotCore(user);
+			session.on('set-user', user => {
+				User.update(user._id, {
+					$set: {
+						line: {
+							user_id: sourceId
 						}
-					});
+					}
 				});
-			}
+			});
 
 			redis.set(sessionId, JSON.stringify(session.export()));
 		} else {