diff --git a/core/installer/welcome/env-manager-tmpl/status.html b/core/installer/welcome/env-manager-tmpl/status.html
index 87ed86d..eb73c21 100644
--- a/core/installer/welcome/env-manager-tmpl/status.html
+++ b/core/installer/welcome/env-manager-tmpl/status.html
@@ -54,17 +54,22 @@
 </div>
 <script type="text/javascript">
  async function refresh() {
-	 const resp = await fetch(window.location.href);
-	 if (resp.ok) {
-		 var tmp = document.createElement("html");
-		 tmp.innerHTML = await resp.text();
-		 if (document.getElementsByTagName("form").length === 0) {
-			 document.getElementById("contents").innerHTML = tmp.getElementsByClassName("env-status")[0].innerHTML;
-		 } else {
-			 document.getElementsByClassName("progress")[0].innerHTML = tmp.getElementsByClassName("progress")[0].innerHTML;
+	 try {
+		 const resp = await fetch(window.location.href);
+		 if (resp.ok) {
+			 var tmp = document.createElement("html");
+			 tmp.innerHTML = await resp.text();
+			 if (document.getElementsByTagName("form").length === 0) {
+				 document.getElementById("contents").innerHTML = tmp.getElementsByClassName("env-status")[0].innerHTML;
+			 } else {
+				 document.getElementsByClassName("progress")[0].innerHTML = tmp.getElementsByClassName("progress")[0].innerHTML;
+			 }
 		 }
+	 } catch (error) {
+		 console.log(error);
+	 } finally {
+		 setTimeout(refresh, 5000);
 	 }
-	 setTimeout(refresh, 5000);
  }
 
  setTimeout(refresh, 5000);
diff --git a/core/installer/welcome/env.go b/core/installer/welcome/env.go
index 856526d..388cba3 100644
--- a/core/installer/welcome/env.go
+++ b/core/installer/welcome/env.go
@@ -323,6 +323,10 @@
 }
 
 func (s *EnvServer) createEnv(w http.ResponseWriter, r *http.Request) {
+	if err := s.repo.Pull(); err != nil {
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+		return
+	}
 	req, err := extractRequest(r)
 	if err != nil {
 		http.Error(w, err.Error(), http.StatusInternalServerError)
