Unable to switch from Native App to Web View

Appium version : 4.2.1
Selenium : 3.141
Language : C#
IDE : Visual Studio 2017

I have been stuck with an issue from long time unable to resolve and in need of help badly. I have an android apk file, after launching the app, it shows the Webview of the website. I am unable to switch from Native App to Webview after launching the App.

I see 2 Context available (Native and Webview) but I am not able to switch to WebView, it fails saying " message":"ChromeDriver ready for new sessions ". Below is the error message when I attempt to switch. I verified ChromeDriver in Appium, it is same as Chromeversion and Appium is v4 latest

Error in switching Context : OpenQA.Selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Did not get a valid response object. Object was: {“value”:{“build”:{“version”:“85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689})”},“message”:“ChromeDriver ready for new sessions.”,“os”:{“arch”:“x86_64”,“name”:“Windows NT”,“version”:“10.0.17763”},“ready”:true}}
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary2 parameters) at MobileDriver.SwithContextToWebView(AppiumDriver1 driver, String context) in C:\Automation\Src\Common\MobileDriver.cs:line 656

Below is my desired Capabilities

        private static AppiumOptions SetCapability(MobileDriverConfig config)
        {
            AppiumOptions capabilities = new AppiumOptions();
            capabilities.AddAdditionalCapability("automationName", config.AutomationName);
            capabilities.AddAdditionalCapability("deviceName", "Android");
            capabilities.AddAdditionalCapability("platformName", config.PlatformName);
            capabilities.AddAdditionalCapability("platformVersion", config.PlatformVersion);
            capabilities.AddAdditionalCapability(CapabilityType.Platform, config.SystemOs);
            capabilities.AddAdditionalCapability("udid", config.DeviceId);
            capabilities.AddAdditionalCapability("appPackage", config.AppPackage);
            capabilities.AddAdditionalCapability("appActivity", config.AppActivity);
            capabilities.AddAdditionalCapability("chromeBundleId", config.ChromeBundleId);
            capabilities.AddAdditionalCapability("ensureWebviewsHavePages", config.EnsureWebviewsHavePages);
            capabilities.AddAdditionalCapability("webviewDevtoolsPort", config.WebviewDevtoolsPort);
            capabilities.AddAdditionalCapability("chromedriverUseSystemExecutable", config.ChromedriverUseSystemExecutable);
            capabilities.AddAdditionalCapability("enableWebviewDetailsCollection", config.EnableWebviewDetailsCollection);
            capabilities.AddAdditionalCapability("fullContextList", true);
            }

Below is what I am using for Context Switching

    public void SwitchToContext(ViewType type)
    {
                Thread.Sleep(10000);
               var driver = (AppiumDriver<IWebElement>)MDriver; // this is already initialized
               System.Collections.ObjectModel.ReadOnlyCollection<string> allContexts = driver.Contexts;   // returns 2 Context [Native_APP, WEBVIEW_packageName]
                   foreach (string context in allContexts)
                   {
                       Logger.Debug("Context Name: " + context);
                       switch (type)
                       {
                           case ViewType.Native:
                               if (context.Contains("NATIVE"))
                               {
                                   driver.Context = context;   // Native Switch works fine
                               }
                               break;
    
                           case ViewType.Webview:
                               if (context.Contains("WEBVIEW"))
                               {
                                 driver.Context = context;  // Webview switch errors out
                               }
                               break;
                       }
                   }
            }

below is how I am Initializing my driver

var driver = new AndroidDriver<IWebElement>(new Uri("http://" + config.Server + ":"
                            + config.Port + "/wd/hub/"), SetCapability(config), new TimeSpan(0, 3, 0));

Please help to resolve the issue