AppiumDriver.performTouch() - NotImplementedError: Not implemented

Hi all!

The project with tests worked successfully on an old machine.
Options:
MacMini, OS12
jdk1.8.0_191
Appium v2.0.0-beta.57

Set up a new machine and transferred tests.
Options:
MacMini, OS14
jdk-20
Appium v2.3.0

Basically, the tests all work, but the methods where there is a call .perform() have stopped working.
What could be the reason? Is this a bug or is something configured incorrectly?

Java code of method:
public Page swapRight() {
new TouchAction(getDriver())
.press(PointOption.point((int) (screenWidth * 0.85), (int) (screenHeight * 0.50)))
.waitAction(WaitOptions.waitOptions(Duration.ofSeconds(1)))
.moveTo(PointOption.point((int) (screenWidth * 0.15), (int) (screenHeight * 0.50)))
.release()
.perform();
return this;
}

Java log:
org.openqa.selenium.UnsupportedCommandException: Not implemented
Build info: version: ‘3.141.59’, revision: ‘e82be7d358’, time: ‘2018-11-14T08:17:03’
System info: host: ‘Mac-mini’, ip: ‘192.168.1.50’, os.name: ‘Mac OS X’, os.arch: ‘x86_64’, os.version: ‘14.2.1’, java.version: ‘20.0.2’
Driver info: io.appium.java_client.android.AndroidDriver
Capabilities {appActivity: .ui.activities.SplashActivity, appPackage: ***, autoGrantPermissions: true, automationName: UiAutomator2, chromeDriverPort: 10001, clearSystemFiles: true, databaseEnabled: false, desired: {appActivity: .ui.activities.SplashActivity, appPackage: ***, autoGrantPermissions: true, automationName: UiAutomator2, chromeDriverPort: 10001, clearSystemFiles: true, deviceName: samsung SM-A515F, fullReset: false, newCommandTimeout: 600000, platformName: android, platformVersion: 13, systemPort: 4777, uiautomator2ServerLaunchTimeout: 60000}, deviceApiLevel: 33, deviceManufacturer: samsung, deviceModel: SM-A515F, deviceName: R58N62MMY7K, deviceScreenDensity: 420, deviceScreenSize: 1080x2400, deviceUDID: R58N62MMY7K, fullReset: false, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: true, newCommandTimeout: 600000, pixelRatio: 2.625, platform: LINUX, platformName: Android, platformVersion: 13, statBarHeight: 87, systemPort: 4777, takesScreenshot: true, uiautomator2ServerLaunchTimeout: 60000, viewportRect: {height: 2099, left: 0, top: 87, width: 1080}, warnings: {}, webStorageEnabled: false}
Session ID: a9f56a6b-9c21-4872-80bf-1e0c50d3010b
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:41)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
at io.appium.java_client.PerformsTouchActions.performTouchAction(PerformsTouchActions.java:41)
at io.appium.java_client.TouchAction.perform(TouchAction.java:187)

Server log:
[HTTP] <-- GET /session/3126b7f8-1fbd-4071-9392-df81a075484e/element/00000000-0000-0194-ffff-ffff0000035f/attribute/text 200 39 ms - 25
[HTTP]
[HTTP] --> POST /session/3126b7f8-1fbd-4071-9392-df81a075484e/touch/perform
[HTTP] {“actions”:[{“action”:“press”,“options”:{“x”:918,“y”:1093}},{“action”:“wait”,“options”:{“ms”:1000}},{“action”:“moveTo”,“options”:{“x”:162,“y”:1093}},{“action”:“release”,“options”:{}}]}
[AndroidUiautomator2Driver@cd42 (3126b7f8)] Calling AppiumDriver.performTouch() with args: [[{“action”:“press”,“options”:{“x”:918,“y”:1093}},{“action”:“wait”,“options”:{“ms”:1000}},{“action”:“moveTo”,“options”:{“x”:162,“y”:1093}},{“action”:“release”,“options”:{}}],“3126b7f8-1fbd-4071-9392-df81a075484e”]
[AndroidUiautomator2Driver@cd42 (3126b7f8)] Encountered internal error running command: NotImplementedError: Not implemented
[AndroidUiautomator2Driver@cd42 (3126b7f8)] at AndroidUiautomator2Driver.swipe (/Users/oleksiiyerokhin/.appium/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/actions.js:48:11)
[AndroidUiautomator2Driver@cd42 (3126b7f8)] at AndroidUiautomator2Driver.performTouch (/Users/oleksiiyerokhin/.appium/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/touch.js:226:25)
[AndroidUiautomator2Driver@cd42 (3126b7f8)] at processTicksAndRejections (node:internal/process/task_queues:95:5)