diff --git a/changelog.md b/changelog.md
index 533dd3df090ac54471f72e602ffd062a6a171822..d9f964f10b1612af19c6bf5f7bbf7c894ef5ac61 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,15 @@
 # changelog
 
+## 2.4.3
+`2021-10-13`
+* `FIX` [#713](https://github.com/sumneko/lua-language-server/issues/713)
+* `FIX` [#718](https://github.com/sumneko/lua-language-server/issues/718)
+* `FIX` [#719](https://github.com/sumneko/lua-language-server/issues/719)
+* `FIX` [#725](https://github.com/sumneko/lua-language-server/issues/725)
+* `FIX` [#729](https://github.com/sumneko/lua-language-server/issues/729)
+* `FIX` [#730](https://github.com/sumneko/lua-language-server/issues/730)
+* `FIX` runtime errors
+
 ## 2.4.2
 `2021-10-8`
 * `FIX` [#702](https://github.com/sumneko/lua-language-server/issues/702)
diff --git a/package.json b/package.json
index c577a8c04274a992d41c4170dca5898566811d10..a45ac56c6bbefd7dbe188b927bbf7da3274421db 100644
--- a/package.json
+++ b/package.json
@@ -1550,5 +1550,5 @@
         "type": "git",
         "url": "https://github.com/sumneko/lua-language-server"
     },
-    "version": "2.4.2"
+    "version": "2.4.3"
 }
diff --git a/package/build.lua b/package/build.lua
index aee8bb1df77881d7998c7dfe02ee1c91c549ce91..1a93caf3b5634e717f7225ade2fd39cfaa6f24e4 100644
--- a/package/build.lua
+++ b/package/build.lua
@@ -1,6 +1,6 @@
 local json = require 'json-beautify'
 
-local VERSION = "2.4.2"
+local VERSION = "2.4.3"
 
 local package = require 'package.package'
 local fsu     = require 'fs-utility'
diff --git a/publish.lua b/publish.lua
index e9ff928dc7bde8cadd49944536e50995c34d0439..8654849addde3716890e143ec3730c5ff2cf22b5 100644
--- a/publish.lua
+++ b/publish.lua
@@ -1,17 +1,16 @@
 local currentPath = debug.getinfo(1, 'S').source:sub(2)
 local rootPath = currentPath:gsub('[^/\\]-$', '')
-if rootPath == '' then
-    rootPath = './'
-end
 local fs         = require 'bee.filesystem'
 local subprocess = require 'bee.subprocess'
 local platform   = require 'bee.platform'
 local thread     = require 'bee.thread'
-local fsu        = require 'fs-utility'
 --dofile(rootPath .. 'server/test.lua')
 
 package.path = package.path
-    .. ';' .. rootPath .. '/?.lua'
+    .. ';' .. rootPath .. '?.lua'
+    .. ';' .. rootPath .. 'server/script/?.lua'
+
+local fsu = require 'fs-utility'
 ROOT = fs.path(rootPath)
 fs.current_path(ROOT)
 require 'package.build'
@@ -59,7 +58,7 @@ local function copyFiles(root, out)
             if fs.is_directory(source) then
                 fs.create_directory(target)
                 if mode == true then
-                    for path in source:list_directory() do
+                    for path in fs.pairs(source) do
                         copy(relative / path:filename(), true)
                     end
                 else
@@ -109,7 +108,7 @@ local function removeFiles(out)
             end
             if fs.is_directory(target) then
                 if mode == true then
-                    for path in target:list_directory() do
+                    for path in fs.pairs(target) do
                         remove(relative / path:filename(), true)
                     end
                     fs.remove(target)
diff --git a/server b/server
index 8f24287d7f1190a5fff5f85de3f403d84bebf79c..cdb2213b9f780b5fe6153ef706cf1ca17a0ed01f 160000
--- a/server
+++ b/server
@@ -1 +1 @@
-Subproject commit 8f24287d7f1190a5fff5f85de3f403d84bebf79c
+Subproject commit cdb2213b9f780b5fe6153ef706cf1ca17a0ed01f