diff --git a/include/Webservices/OperationManager.php b/include/Webservices/OperationManager.php
index 4c9f217d8095e2f560ba0007fe93b3a2e4537d45..949ab248a4951bbc784c03130c3993145b1f3887 100644
--- a/include/Webservices/OperationManager.php
+++ b/include/Webservices/OperationManager.php
@@ -148,9 +148,18 @@
 			try{
 				$operation = strtolower($this->operationName);
 				if(!$this->preLogin){
-					$params[] = $user;
+					$params["user"] = $user;
 					return call_user_func_array($this->handlerMethod,$params);
 				}else{
+
+					/* PHP 8.x fix to match target handler arguments (named parameter) */
+					if ($this->handlerMethod == "vtws_login") {
+						if (isset($params["accessKey"])) {
+							$params["pwd"] = $params["accessKey"];
+							unset($params["accessKey"]);
+						}
+					}
+
 					$userDetails = call_user_func_array($this->handlerMethod,$params);
 					if(is_array($userDetails)){
 						return $userDetails;