diff --git a/main.go b/main.go
index f077b5ec31..0ad5b8c3b9 100644
--- a/main.go
+++ b/main.go
@@ -8,6 +8,7 @@
 package main
 
 import (
+	"log"
 	"os"
 	"runtime"
 
@@ -38,5 +39,5 @@ func main() {
 		cmd.CmdAdmin,
 	}
 	app.Flags = append(app.Flags, []cli.Flag{}...)
-	app.Run(os.Args)
+	log.Fatal(app.Run(os.Args))
 }
diff --git a/routers/install.go b/routers/install.go
index 35728c3ca9..36293b1030 100644
--- a/routers/install.go
+++ b/routers/install.go
@@ -345,7 +345,12 @@ func InstallPost(ctx *context.Context, form auth.InstallForm) {
 	cfg.Section("security").Key("INSTALL_LOCK").SetValue("true")
 	cfg.Section("security").Key("SECRET_KEY").SetValue(base.GetRandomString(15))
 
-	os.MkdirAll(filepath.Dir(setting.CustomConf), os.ModePerm)
+	err := os.MkdirAll(filepath.Dir(setting.CustomConf), os.ModePerm)
+	if err != nil {
+		ctx.RenderWithErr(ctx.Tr("install.save_config_failed", err), INSTALL, &form)
+		return
+	}
+
 	if err := cfg.SaveTo(setting.CustomConf); err != nil {
 		ctx.RenderWithErr(ctx.Tr("install.save_config_failed", err), INSTALL, &form)
 		return
@@ -375,8 +380,14 @@ func InstallPost(ctx *context.Context, form auth.InstallForm) {
 		}
 
 		// Auto-login for admin
-		ctx.Session.Set("uid", u.ID)
-		ctx.Session.Set("uname", u.Name)
+		if err := ctx.Session.Set("uid", u.ID); err != nil {
+			ctx.RenderWithErr(ctx.Tr("install.save_config_failed", err), INSTALL, &form)
+			return
+		}
+		if err := ctx.Session.Set("uname", u.Name); err != nil {
+			ctx.RenderWithErr(ctx.Tr("install.save_config_failed", err), INSTALL, &form)
+			return
+		}
 	}
 
 	log.Info("First-time run install finished!")