[Java][Native iOS 10.2] Swipe on a 2-panes app doesn't work appropriately

Appium 1.6.3
Xcode 8.2.1
Java-client 4.2.1/5.0.0-Beta-1/2
macOS 10.12.3
target: simulator/iPad Mini2(iOS 10.2.1)

I have an application witch consists of 2 panes.
The problem is that swipe is performed with a strange delay, in case when application has 2 panes on the screen, it works on the login pane though, witch is a single pane screen.
So when I run

driver.swipe(driver.manage().window().getSize().getWidth()/2, driver.manage().window().getSize().getHeight()/2, 0, -1000, 500);

in Appium console I see:

[debug] [XCUITest] Executing command 'performTouch'
[debug] [XCUITest] Received the following touch action: press-wait-moveTo-release
[debug] [JSONWP Proxy] Proxying [GET /element/65593AFB-9F69-4818-8A67-E1CAC212D0AE/rect] to [GET http://localhost:8100/session/243DEA70-0762-43E0-A774-E4BCFBEEC854/element/65593AFB-9F69-4818-8A67-E1CAC212D0AE/rect] with no body
[debug] [JSONWP Proxy] Got response with status 200: "{\n  \"value\" : {\n    \"y\" : 244,\n    \"x\" : 435,\n    \"width\" : 318,\n    \"height\" : 18\n  },\n  \"sessionId\" : \"243DEA70-0762-43E0-A774-E4BCFBEEC854\",\n  \"status\" : 0\n}"
[debug] [JSONWP Proxy] Proxying [POST /wda/element/0/dragfromtoforduration] to [POST http://localhost:8100/session/243DEA70-0762-43E0-A774-E4BCFBEEC854/wda/element/0/dragfromtoforduration] with body: {"fromX":594,"fromY":253,"toX":594,"toY":353,"duration":0.5}

And next I should wait for like 5 minutes to see swipe performed.

I also tried to do the same using TouchAction(), but nothing changes.

In addition, while debugging both swipes are performing almost at once after swiping manually, i.e. I run the driver.swipe(), wait for a sec, swipe it manually a little and after that it swipes by itself and after that if I run swipe method again, it performs correctly without manual interactions until the panes are changed.
Also tried driver.click() on element before swipe - didn’t help.

Can somebody help with this issue?

[HTTP] --> POST /wd/hub/session/79fd60a8-50f4-4243-9e90-3186b2e07794/touch/perform {"actions":[{"action":"press","options":{"element":"AA116EAB-F370-48DF-9419-9EF5D45C5E63"}},{"action":"wait","options":{"ms":500}},{"action":"release","options":{}}]}
[debug] [MJSONWP] Calling AppiumDriver.performTouch() with args: [[{"action":"press","options":{"element":"AA116EAB-F370-48DF-9419-9EF5D45C5E63"}},{"action":"wait","options":{"ms":500}},{"action":"release","options":{}}],"79fd60a8-50f4-4243-9e90-3186b2e07794"]
[debug] [XCUITest] Executing command 'performTouch'
[debug] [XCUITest] Received the following touch action: press-wait-release
[debug] [JSONWP Proxy] Proxying [POST /wda/element/AA116EAB-F370-48DF-9419-9EF5D45C5E63/touchAndHold] to [POST http://localhost:8100/session/444508FB-C5BF-4676-ACA9-ACCD3C969EC8/wda/element/AA116EAB-F370-48DF-9419-9EF5D45C5E63/touchAndHold] with body: {"duration":0.5}
[debug] [JSONWP Proxy] Got response with status 200: {"value":{},"sessionId":"444508FB-C5BF-4676-ACA9-ACCD3C969EC8","status":0}
[debug] [MJSONWP] Responding to client with driver.performTouch() result: {}
[HTTP] <-- POST /wd/hub/session/79fd60a8-50f4-4243-9e90-3186b2e07794/touch/perform 200 319211 ms - 74 
[debug] [XCUITest] Connection to WDA timed out
[debug] [iProxy] recv failed: Operation not permitted
[HTTP] --> POST /wd/hub/session {"capabilities":{"desiredCapabilities":{"app":"/Users/pavlo.shtefanesku/IdeaProjects/ql_mobile/appDir/MobileField_simulator.app","platformName":"iOS","deviceName":"iPad Air","newCommandTimeout":"300","platformVersion":"10.2"},"requiredCapabilities":{}},"desiredCapabilities":{"app":"/Users/pavlo.shtefanesku/IdeaProjects/ql_mobile/appDir/MobileField_simulator.app","platformName":"iOS","deviceName":"iPad Air","newCommandTimeout":"300","platformVersion":"10.2"},"requiredCapabilities":{}}
[debug] [MJSONWP] Calling AppiumDriver.createSession() with args: [{"app":"/Users/pavlo.shtefanesku/IdeaProjects/ql_mobile/appDir/MobileField_simulator.app","platformName":"iOS","deviceName":"iPad Air","newCommandTimeout":"300","platformVersion":"10.2"},{},{"desiredCapabilities":{"app":"/Users/pavlo.shtefanesku/IdeaProjects/ql_mobile/appDir/MobileField_simulator.app","platformName":"iOS","deviceName":"iPad Air","newCommandTimeout":"300","platformVersion":"10.2"},"requiredCapabilities":{}},null,null]

you can see that swipe/touch is performed but with a delay in more than 5 minutes, after what there is a connection timeout to WDA and Appium is reloading the application on real device/simulator

Another try:

[debug] [XCUITest] Executing command 'performTouch'
[debug] [XCUITest] Received the following touch action: press-wait-moveTo-release
[debug] [JSONWP Proxy] Proxying [POST /wda/element/0/dragfromtoforduration] to [POST http://localhost:8100/session/7D15248B-5638-44CF-8C39-061879C45EB3/wda/element/0/dragfromtoforduration] with body: {"fromX":384,"fromY":512,"toX":0,"toY":-200,"duration":0.5}
[debug] [XCUITest] Connection to WDA timed out
[debug] [iProxy] recv failed: Operation not permitted
[debug] [JSONWP Proxy] Got response with status 200: {"value":{},"sessionId":"7D15248B-5638-44CF-8C39-061879C45EB3","status":0}
[debug] [MJSONWP] Responding to client with driver.performTouch() result: {}
[HTTP] <-- POST /wd/hub/session/55dbc181-79f2-491e-b98e-3ba9abe8ec82/touch/perform 200 369477 ms - 74

Proof that it works on ‘Login screen’ which has only one pain. Works as expected with:

driver.swipe(386, 400, 0, -200, 1000);

[HTTP] --> POST /wd/hub/session/ea384940-5cd1-4729-bfde-f13d10dab430/touch/perform {"actions":[{"action":"press","options":{"x":386,"y":400}},{"action":"wait","options":{"ms":1000}},{"action":"moveTo","options":{"x":-386,"y":-600}},{"action":"release","options":{}}]}
[debug] [MJSONWP] Calling AppiumDriver.performTouch() with args: [[{"action":"press","options":{"x":386,"y":400}},{"action":"wait","options":{"ms":1000}},{"action":"moveTo","options":{"x":-386,"y":-600}},{"action":"release","options":{}}],"ea384940-5cd1-4729-bfde-f13d10dab430"]
[debug] [XCUITest] Executing command 'performTouch'
[debug] [XCUITest] Received the following touch action: press-wait-moveTo-release
[debug] [JSONWP Proxy] Proxying [POST /wda/element/0/dragfromtoforduration] to [POST http://localhost:8100/session/DCA8876D-54AB-47F3-8D62-825AF486D75B/wda/element/0/dragfromtoforduration] with body: {"fromX":386,"fromY":400,"toX":0,"toY":-200,"duration":1}
[debug] [JSONWP Proxy] Got response with status 200: {"value":{},"sessionId":"DCA8876D-54AB-47F3-8D62-825AF486D75B","status":0}
[debug] [MJSONWP] Responding to client with driver.performTouch() result: {}
[HTTP] <-- POST /wd/hub/session/ea384940-5cd1-4729-bfde-f13d10dab430/touch/perform 200 6238 ms - 74 

There is no problem with axes because in case when driver can’t ‘touch’ any element by set axes, it’s just going further without unexpected delay etc.
Really need help!