Unable to Click/Tap an element: Appium 6, Xcode 8, iOS 10.0.2

Hello All,

I’m on Appium 6, Xcode 8, iOS 10.0.2.
On a page, I have 3 elements. A Link, Id & Pwd.
I’m able to get click/sendkeys to Id and Pwd.
But, Link is not responding to Click / Tap. Server shows 200 response to the press action. Below is my code and server logs attached. I appreciate any clues to overcome the issue.

===
private IOSDriver driver;
@BeforeClass
public void setUpClass() throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();

    capabilities.setCapability("app", "/Users/userid/Development/mobile_app/My.app");
    capabilities.setCapability("device", "iPad");
    capabilities.setCapability("udid", <my_udid>);
    capabilities.setCapability("deviceName", "iPad Air 2");
    capabilities.setCapability("platformName", "iOS");
    capabilities.setCapability("platformVersion", "10.0.2");
    capabilities.setCapability("automationName", "XCUITest");
    capabilities.setCapability("autoWebView", "false");
    capabilities.setCapability("fullReset", "false");

    driver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    
   
    Thread.sleep(5000);
    

    Set<String> contextNames = driver.getContextHandles();
    for (String contextName : contextNames) {
        System.out.println("contextName: " + contextName);
        if (contextName.contains("WEB")) {
            driver.context(contextName);
            System.out.println("set context: " + contextName);
        }
    }

    driver.findElement(By.id("ext-element-24")).sendKeys("hello"); // Id -- Works
    driver.findElement(By.id("ext-element-30")).sendKeys("hmm");     // Pwd -- Works
    
    driver.findElement(By.id("ext-element-37")).click();        // Link -- click doesn't work

    Point p1 = driver.findElement(By.id("ext-element-37")).getLocation();
    Dimension d = driver.findElement(By.id("ext-element-37")).getSize();
    Point p = new Point(p1.x + (d.width/2), p1.y + (d.height/2));
    driver.tap(1, p.x, p.y, 1); / Link -- Tap does'nt work
}

===

Server Logs:

[debug] [XCUITest] Executing command ‘getLocation’
[debug] [RemoteDebugger] Executing ‘get_top_left_coordinates’ atom in default context
[debug] [RemoteDebugger] Sending javascript command (function(){return function…
[debug] [RemoteDebugger] Sending WebKit data: {“method”:"Runtime.evaluate…
[debug] [RemoteDebugger] Receiving WebKit data: {“result”:{“result”:{“type”…
[debug] [RemoteDebugger] Found handler for message ‘4’
[debug] [RemoteDebugger] Received result for atom ‘get_top_left_coordinates’ execution: {“x”:247,“y”:339}
[MJSONWP] Responding to client with driver.getLocation() result: {“x”:247,“y”:339,“clone”:"f…
[HTTP] <-- GET /wd/hub/session/587199ea-5b3c-4bbf-8de9-aa2237ff73a1/element/5001/location 200 510 ms - 538
[HTTP] --> POST /wd/hub/session/587199ea-5b3c-4bbf-8de9-aa2237ff73a1/element {“using”:“id”,“value”:“ext-element-24”}
[MJSONWP] Calling AppiumDriver.findElement() with args: [“id”,“ext-element-24”,“587…
[debug] [XCUITest] Executing command ‘findElement’
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, name, class name, -ios predicate string, accessibility id
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [RemoteDebugger] Executing ‘find_element’ atom in default context
[debug] [RemoteDebugger] Sending javascript command (function(){return function…
[debug] [RemoteDebugger] Sending WebKit data: {“method”:“Runtime.evaluate…
[debug] [RemoteDebugger] Receiving WebKit data: {“result”:{“result”:{“type”…
[debug] [RemoteDebugger] Found handler for message ‘5’
[debug] [RemoteDebugger] Received result for atom ‘find_element’ execution: {“ELEMENT”:”:wdc:1476931637801”}
[MJSONWP] Responding to client with driver.findElement() result: {“ELEMENT”:“5002”}
[HTTP] <-- POST /wd/hub/session/587199ea-5b3c-4bbf-8de9-aa2237ff73a1/element 200 511 ms - 90
[HTTP] --> GET /wd/hub/session/587199ea-5b3c-4bbf-8de9-aa2237ff73a1/element/5002/size {}
[MJSONWP] Calling AppiumDriver.getSize() with args: [“5002”,"587199ea-5b3c-4bbf…
[debug] [XCUITest] Executing command ‘getSize’
[debug] [RemoteDebugger] Executing ‘get_size’ atom in default context
[debug] [RemoteDebugger] Sending javascript command (function(){return function…
[debug] [RemoteDebugger] Sending WebKit data: {“method”:"Runtime.evaluate…
[debug] [RemoteDebugger] Receiving WebKit data: {“result”:{“result”:{“type”…
[debug] [RemoteDebugger] Found handler for message ‘6’
[debug] [RemoteDebugger] Received result for atom ‘get_size’ execution: {“width”:530,“height”:40}
[MJSONWP] Responding to client with driver.getSize() result: {“width”:530,“height”:40}
[HTTP] <-- GET /wd/hub/session/587199ea-5b3c-4bbf-8de9-aa2237ff73a1/element/5002/size 200 510 ms - 97
[HTTP] --> POST /wd/hub/session/587199ea-5b3c-4bbf-8de9-aa2237ff73a1/touch/perform {“actions”:[{“action”:“press”,“options”:{“x”:512,“y”:359}},{“action”:“wait”,“options”:{“ms”:1}},{“action”:“release”,“options”:{}}]}
[MJSONWP] Calling AppiumDriver.performTouch() with args: [[{“action”:“press”,"option…
[debug] [XCUITest] Executing command ‘performTouch’
[JSONWP Proxy] Proxying [POST /tap/0] to [POST http://localhost:8100/session/7A336E57-AD25-4A85-94D9-68CAF7787E16/tap/0] with body: {“x”:512,“y”:359}
[JSONWP Proxy] Got response with status 200: {“value”:{},“sessionId”:"7A…
[MJSONWP] Responding to client with driver.performTouch() result: {}
[HTTP] <-- POST /wd/hub/session/587199ea-5b3c-4bbf-8de9-aa2237ff73a1/touch/perform 200 2400 ms - 74
[debug] [XCUITest] Waiting for WebDriverAgent server to finish loading…

Tried xpath, By.Name, by.LinkedText… but, no luck. Also, tried to switch back to Native, element was not found.
I appreciate any clues to overcome the issue.