{"id":11766,"date":"2021-09-10T00:00:25","date_gmt":"2021-09-10T07:00:25","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=11766"},"modified":"2025-06-13T21:03:51","modified_gmt":"2025-06-14T04:03:51","slug":"troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/","title":{"rendered":"How to Troubleshoot Your SDK Connection using SDK Doctor &amp; Couchbase Alternate Addresses"},"content":{"rendered":"<p><strong>It&#8217;s a common experience to<\/strong> run into network connection errors when you&#8217;re developing an application \u2013 particularly if you&#8217;re connecting from your local computer SDK to a remote cluster.<\/p>\n<p>Is your SDK not connected? You&#8217;re likely to run into situations where your application can connect to the server but you get errors related to the network connection or IP addresses between the nodes or your app and <a href=\"https:\/\/www.couchbase.com\/products\/developer-sdk\/?ref=blog\" target=\"_blank\" rel=\"noopener\">the Couchbase SDK<\/a>.<\/p>\n<p>This article discusses how you can troubleshoot and fix these errors. The example we&#8217;ll walkthrough below creates a cluster in Azure to demonstrate the initial conditions, but it should be applicable to other installations as well.<\/p>\n<p>We\u2019ll go through each step in order to replicate the error. First, we&#8217;ll install <a href=\"https:\/\/www.couchbase.com\/products\/capella\/\" target=\"_blank\" rel=\"noopener\">Couchbase<\/a> in Azure, then run SDK Doctor to see how the error manifests itself, then update the alternate addresses, and finally run the SDK Doctor again to see the successful response.<\/p>\n<p>Okay, let&#8217;s dive in.<\/p>\n<h2>Install Your Couchbase Cluster in Azure<\/h2>\n<p>Here are your steps for installing a Couchbase cluster in Azure.<\/p>\n<ol>\n<li>Log into <a href=\"https:\/\/azuremarketplace.microsoft.com\/en-us\/marketplace\/?ref=hello-from-couchbase\" target=\"_blank\" rel=\"noopener\">the Microsoft Azure Marketplace<\/a><\/li>\n<li>Search for Couchbase<\/li>\n<li>Choose Couchbase Server and Sync Gateway<\/li>\n<li>Click Get It Now<\/li>\n<li>Choose BYOL<\/li>\n<li>Click Continue<\/li>\n<li>Click Create<\/li>\n<li>Fill out form<\/li>\n<li>Admin: `asdf88495` &lt; Update this as appropriate<\/li>\n<li>Password: `Password1!@#$` &lt; Update this as appropriate<\/li>\n<li>Complete configuration forms as appropriate<\/li>\n<li>Click Create<\/li>\n<\/ol>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>The process runs and looks like so once you&#8217;ve completed all the steps:<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11767 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/image4-1024x426.png\" alt=\"Azure completed process after adding Couchbase\" width=\"900\" height=\"374\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image4-1024x426.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image4-300x125.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image4-768x319.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image4-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image4.png 1176w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h2>Update Firewall Rules<\/h2>\n<p>You likely need to update firewall rules to allow your local computer to connect to the remote Azure cluster. Here are the steps:<\/p>\n<p><strong>1.<\/strong> Go to Resource Group<\/p>\n<p><strong>2.<\/strong> Click on Virtual machine scale set<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11769 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/image2-1024x415.png\" alt=\"Microsoft Azure virtual machine scale set\" width=\"900\" height=\"365\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image2-1024x415.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image2-300x122.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image2-768x311.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image2-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image2-1320x535.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image2.png 1463w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><strong>3.<\/strong> Click on Networking<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11770 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/image3.png\" alt=\"Couchbase on Azure Networking option\" width=\"304\" height=\"567\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image3.png 304w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image3-161x300.png 161w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image3-300x560.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image3-11x20.png 11w\" sizes=\"auto, (max-width: 304px) 100vw, 304px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><strong>4.<\/strong> Click Add inbound port rule<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11772 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/image6-1024x304.png\" alt=\"Azure add inbound port rule button\" width=\"900\" height=\"267\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image6-1024x304.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image6-300x89.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image6-768x228.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image6-20x6.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image6-1320x392.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image6.png 1416w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><strong>5.<\/strong> Update the configuration to use your local network information. <em>Warning:<\/em> This is very open for the purposes of this demonstration, you should follow your security guidelines when configuring the firewall.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11768 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/image1.png\" alt=\"Local network firewall configuration\" width=\"563\" height=\"915\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image1.png 563w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image1-185x300.png 185w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image1-300x488.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image1-12x20.png 12w\" sizes=\"auto, (max-width: 563px) 100vw, 563px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h2>Confirm Couchbase Is Up and Running<\/h2>\n<p>Your next major step is to confirm that Couchbase is up and running. Here&#8217;s how you do that:<\/p>\n<p><strong>1.<\/strong> Go to instances to get an IP address and connect to the Couchbase control panel.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11771 size-medium_large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/image5-768x369.png\" alt=\"Couchbase control panel using IP address\" width=\"768\" height=\"369\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image5-768x369.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image5-300x144.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image5-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image5.png 912w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><strong>2.<\/strong> Get the IP address for one of your servers.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11773 size-medium_large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/image7-768x235.png\" alt=\"Couchbase server IP address\" width=\"768\" height=\"235\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image7-768x235.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image7-300x92.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image7-1024x314.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image7-20x6.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image7-1320x404.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/image7.png 1339w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><strong>3.<\/strong> In this example, the login is `https:\/\/40.80.151.197:8091\/ui\/index.html`.<\/p>\n<p><strong>4.<\/strong> Login with the info used to create the admin account from the &#8220;Install Your Couchbase Cluster in Azure&#8221; section above. This was where you created the cluster in Azure and completed the form.<\/p>\n<p><strong>5.<\/strong> In Couchbase, add sample data to use for this demonstration. Follow the <a href=\"https:\/\/docs.couchbase.com\/server\/current\/manage\/manage-settings\/install-sample-buckets.html?ref=blog\" target=\"_blank\" rel=\"noopener\">instructions in the Couchbase documentation for adding data from sample buckets<\/a>.<\/p>\n<h2>Introducing the SDK Doctor<\/h2>\n<p>The Couchbase SDK doctor is a tool to diagnose application-server-side connectivity issues with your Couchbase cluster. It makes the same connections to the <a href=\"https:\/\/www.couchbase.com\/products\/server\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Couchbase Server<\/a> cluster that Couchbase SDKs make during bootstrapping, and then reports on the state of the connections made\u2009\u2013 giving diagnostic information that helps you solve puzzling network issues.<\/p>\n<p>Here is <a href=\"https:\/\/docs.couchbase.com\/server\/current\/sdk\/sdk-doctor.html?ref=blog\" target=\"_blank\" rel=\"noopener\">the full set of the instructions for using the SDK Doctor with Couchbase Server<\/a>.<\/p>\n<h2>1. Running the SDK Doctor to Spot Errors<\/h2>\n<p>Following the instructions above \u2013 where you collected the IP address for your Couchbase cluster \u2013 get the IP addresses for each of the other nodes in your cluster as well. You&#8217;ll use the IP addresses in the connection string for the SDK Doctor.<\/p>\n<p>The command below uses the IP addresses for the nodes in your cluster in addition to the sample data bucket name. You will need to update this information based on your own cluster IPs and the specific sample bucket you installed.<\/p>\n<p>Now, run the SDK Doctor.<\/p>\n<p>You\u2019ll probably get a bunch of error messages \u2013 as you can see below \u2013 especially if you are running SDK Doctor from a local computer and not on the same network as the nodes\/cluster\/VMs. You\u2019ll see the `ERROR` and `Failed to connect` messages. Notice the IP addresses are the internal 10 addresses, not the 40 or 13.<\/p>\n<p>You may need to double-click the code sample below to see the full output (depending on your device).<\/p>\n<pre class=\"toolbar:1 lang:default decode:true\">.\\sdk-doctor-windows.exe diagnose couchbase:\/\/40.80.151.197,40.80.146.52,13.82.230.238\/beer-sample  -u asdf88495 -p Password1!@#$\r\n\r\n|====================================================================|\r\n|          ___ ___  _  __   ___   ___   ___ _____ ___  ___           |\r\n|         \/ __|   \\| |\/ \/__|   \\ \/ _ \\ \/ __|_   _\/ _ \\| _ \\          |\r\n|         \\__ \\ |) | ' &lt;___| |) | (_) | (__  | || (_) |   \/          |\r\n|         |___\/___\/|_|\\_\\  |___\/ \\___\/ \\___| |_| \\___\/|_|_\\          |\r\n|                                                                    |\r\n|====================================================================|\r\n\r\nNote: Diagnostics can only provide accurate results when your cluster\r\n is in a stable state.  Active rebalancing and other cluster configuration\r\n changes can cause the output of the doctor to be inconsistent or in the\r\n worst cases, completely incorrect.\r\n\r\n13:52:58.412 INFO \u25b6 Parsing connection string `couchbase:\/\/40.80.151.197,40.80.146.52,13.82.230.238\/beer-sample`\r\n13:52:58.413 INFO \u25b6 Connection string identifies the following CCCP endpoints:\r\n13:52:58.413 INFO \u25b6   1. 40.80.151.197:11210\r\n13:52:58.414 INFO \u25b6   2. 40.80.146.52:11210\r\n13:52:58.414 INFO \u25b6   3. 13.82.230.238:11210\r\n13:52:58.414 INFO \u25b6 Connection string identifies the following HTTP endpoints:\r\n13:52:58.414 INFO \u25b6   1. 40.80.151.197:8091\r\n13:52:58.414 INFO \u25b6   2. 40.80.146.52:8091\r\n13:52:58.414 INFO \u25b6   3. 13.82.230.238:8091\r\n13:52:58.415 INFO \u25b6 Connection string specifies bucket `beer-sample`\r\n13:52:58.415 INFO \u25b6 Performing DNS lookup for host `40.80.151.197`\r\n13:52:58.415 INFO \u25b6 Performing DNS lookup for host `40.80.146.52`\r\n13:52:58.415 INFO \u25b6 Performing DNS lookup for host `13.82.230.238`\r\n13:52:58.415 INFO \u25b6 Attempting to connect to cluster via CCCP\r\n13:52:58.416 INFO \u25b6 Attempting to fetch config via cccp from `40.80.151.197:11210`\r\n13:52:58.631 INFO \u25b6 Attempting to fetch config via cccp from `40.80.146.52:11210`\r\n13:52:58.846 INFO \u25b6 Attempting to fetch config via cccp from `13.82.230.238:11210`\r\n13:52:59.076 WARN \u25b6 Bootstrap host `40.80.151.197` is not using the canonical node hostname of `10.0.0.4`.  This is not necessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n13:52:59.077 WARN \u25b6 Bootstrap host `40.80.146.52` is not using the canonical node hostname of `10.0.0.5`.  This is not neccessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n13:52:59.079 WARN \u25b6 Bootstrap host `13.82.230.238` is not using the canonical node hostname of `10.0.0.6`.  This is not neccessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n13:52:59.080 INFO \u25b6 Selected the following network type: default\r\n13:52:59.080 INFO \u25b6 Identified the following nodes:\r\n13:52:59.081 INFO \u25b6   [0] 10.0.0.4\r\n13:52:59.081 INFO \u25b6                indexScan:  9101,      indexStreamInit:  9103,   indexStreamCatchup:  9104\r\n13:52:59.081 INFO \u25b6                    kvSSL: 11207,            projector:  9999,                 mgmt:  8091\r\n13:52:59.082 INFO \u25b6                  mgmtSSL: 18091,           indexAdmin:  9100,                 n1ql:  8093\r\n13:52:59.082 INFO \u25b6                indexHttp:  9102,           indexHttps: 19102,                   kv: 11210\r\n13:52:59.083 INFO \u25b6                     cbas:  8095,          eventingSSL: 18096,           ftsGRPCSSL: 19130\r\n13:52:59.083 INFO \u25b6                   ftsSSL: 18094,              ftsGRPC:  9130,     indexStreamMaint:  9105\r\n13:52:59.084 INFO \u25b6                     capi:  8092,              n1qlSSL: 18093,              cbasSSL: 18095\r\n13:52:59.084 INFO \u25b6            eventingDebug:  9140,                  fts:  8094,    eventingAdminPort:  8096\r\n13:52:59.085 INFO \u25b6                  capiSSL: 18092\r\n13:52:59.085 INFO \u25b6   [1] 10.0.0.5\r\n13:52:59.086 INFO \u25b6               ftsGRPCSSL: 19130,           indexHttps: 19102,                 cbas:  8095\r\n13:52:59.086 INFO \u25b6        eventingAdminPort:  8096,        eventingDebug:  9140,           indexAdmin:  9100\r\n13:52:59.087 INFO \u25b6          indexStreamInit:  9103,     indexStreamMaint:  9105,              mgmtSSL: 18091\r\n13:52:59.087 INFO \u25b6                  cbasSSL: 18095,               ftsSSL: 18094,                 n1ql:  8093\r\n13:52:59.088 INFO \u25b6                       kv: 11210,                 capi:  8092,              capiSSL: 18092\r\n13:52:59.088 INFO \u25b6                  ftsGRPC:  9130,            indexScan:  9101,            indexHttp:  9102\r\n13:52:59.089 INFO \u25b6       indexStreamCatchup:  9104,                kvSSL: 11207,                 mgmt:  8091\r\n13:52:59.089 INFO \u25b6              eventingSSL: 18096,                  fts:  8094,            projector:  9999\r\n13:52:59.089 INFO \u25b6                  n1qlSSL: 18093\r\n13:52:59.090 INFO \u25b6   [2] 10.0.0.6\r\n13:52:59.090 INFO \u25b6                  mgmtSSL: 18091,                 cbas:  8095,              cbasSSL: 18095\r\n13:52:59.091 INFO \u25b6        eventingAdminPort:  8096,               ftsSSL: 18094,           indexAdmin:  9100\r\n13:52:59.091 INFO \u25b6       indexStreamCatchup:  9104,                 capi:  8092,              ftsGRPC:  9130\r\n13:52:59.092 INFO \u25b6                indexHttp:  9102,     indexStreamMaint:  9105,                kvSSL: 11207\r\n13:52:59.092 INFO \u25b6                projector:  9999,        eventingDebug:  9140,                  fts:  8094\r\n13:52:59.093 INFO \u25b6               ftsGRPCSSL: 19130,      indexStreamInit:  9103,                 mgmt:  8091\r\n13:52:59.093 INFO \u25b6              eventingSSL: 18096,            indexScan:  9101,           indexHttps: 19102\r\n13:52:59.093 INFO \u25b6                       kv: 11210,              capiSSL: 18092,                 n1ql:  8093\r\n13:52:59.094 INFO \u25b6                  n1qlSSL: 18093\r\n13:52:59.095 INFO \u25b6 Fetching config from `https:\/\/10.0.0.4:8091`\r\n13:53:01.096 INFO \u25b6 Failed to retreive cluster information (error: Get \"https:\/\/10.0.0.4:8091\/pools\/default\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:03.097 ERRO \u25b6 Failed to connect to Key Value service at `10.0.0.4:11210` (error: dial tcp 10.0.0.4:11210: i\/o timeout)\r\n13:53:05.098 ERRO \u25b6 Failed to connect to Management service at `10.0.0.4:8091` (error: Get \"https:\/\/10.0.0.4:8091\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:07.099 ERRO \u25b6 Failed to connect to Views service at `10.0.0.4:8092` (error: Get \"https:\/\/10.0.0.4:8092\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:09.101 ERRO \u25b6 Failed to connect to Query service at `10.0.0.4:8093` (error: Get \"https:\/\/10.0.0.4:8093\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:11.109 ERRO \u25b6 Failed to connect to Search service at `10.0.0.4:8094` (error: Get \"https:\/\/10.0.0.4:8094\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:13.110 ERRO \u25b6 Failed to connect to Analytics service at `10.0.0.4:8095` (error: Get \"https:\/\/10.0.0.4:8095\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:15.110 ERRO \u25b6 Failed to connect to Key Value service at `10.0.0.5:11210` (error: dial tcp 10.0.0.5:11210: i\/o timeout)\r\n13:53:17.119 ERRO \u25b6 Failed to connect to Management service at `10.0.0.5:8091` (error: Get \"https:\/\/10.0.0.5:8091\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:19.119 ERRO \u25b6 Failed to connect to Views service at `10.0.0.5:8092` (error: Get \"https:\/\/10.0.0.5:8092\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:21.120 ERRO \u25b6 Failed to connect to Query service at `10.0.0.5:8093` (error: Get \"https:\/\/10.0.0.5:8093\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:23.120 ERRO \u25b6 Failed to connect to Search service at `10.0.0.5:8094` (error: Get \"https:\/\/10.0.0.5:8094\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:25.121 ERRO \u25b6 Failed to connect to Analytics service at `10.0.0.5:8095` (error: Get \"https:\/\/10.0.0.5:8095\/\": dial tcp 10.0.0.5:8095: i\/o timeout (Client.Timeout exceeded while awaiting headers))\r\n13:53:27.121 ERRO \u25b6 Failed to connect to Key Value service at `10.0.0.6:11210` (error: dial tcp 10.0.0.6:11210: i\/o timeout)\r\n13:53:29.122 ERRO \u25b6 Failed to connect to Management service at `10.0.0.6:8091` (error: Get \"https:\/\/10.0.0.6:8091\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:31.123 ERRO \u25b6 Failed to connect to Views service at `10.0.0.6:8092` (error: Get \"https:\/\/10.0.0.6:8092\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:33.124 ERRO \u25b6 Failed to connect to Query service at `10.0.0.6:8093` (error: Get \"https:\/\/10.0.0.6:8093\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:35.124 ERRO \u25b6 Failed to connect to Search service at `10.0.0.6:8094` (error: Get \"https:\/\/10.0.0.6:8094\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:37.125 ERRO \u25b6 Failed to connect to Analytics service at `10.0.0.6:8095` (error: Get \"https:\/\/10.0.0.6:8095\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n13:53:39.126 WARN \u25b6 Failed to perform KV connection performance analysis on `10.0.0.4:11210` (error: %!d(string=dial tcp 10.0.0.4:11210: i\/o timeout))\r\n13:53:41.127 WARN \u25b6 Failed to perform KV connection performance analysis on `10.0.0.5:11210` (error: %!d(string=dial tcp 10.0.0.5:11210: i\/o timeout))\r\n13:53:43.128 WARN \u25b6 Failed to perform KV connection performance analysis on `10.0.0.6:11210` (error: %!d(string=dial tcp 10.0.0.6:11210: i\/o timeout))\r\n13:53:43.128 INFO \u25b6 Diagnostics completed\r\n\r\nSummary:\r\n[WARN] Bootstrap host `40.80.151.197` is not using the canonical node hostname of `10.0.0.4`.  This is not neccessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n[WARN] Bootstrap host `40.80.146.52` is not using the canonical node hostname of `10.0.0.5`.  This is not neccessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n[WARN] Bootstrap host `13.82.230.238` is not using the canonical node hostname of `10.0.0.6`.  This is not neccessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n[WARN] Failed to perform KV connection performance analysis on `10.0.0.4:11210` (error: %!d(string=dial tcp 10.0.0.4:11210: i\/o timeout))\r\n[WARN] Failed to perform KV connection performance analysis on `10.0.0.5:11210` (error: %!d(string=dial tcp 10.0.0.5:11210: i\/o timeout))\r\n[WARN] Failed to perform KV connection performance analysis on `10.0.0.6:11210` (error: %!d(string=dial tcp 10.0.0.6:11210: i\/o timeout))\r\n[ERRO] Failed to connect to Key Value service at `10.0.0.4:11210` (error: dial tcp 10.0.0.4:11210: i\/o timeout)\r\n[ERRO] Failed to connect to Management service at `10.0.0.4:8091` (error: Get \"https:\/\/10.0.0.4:8091\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Views service at `10.0.0.4:8092` (error: Get \"https:\/\/10.0.0.4:8092\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Query service at `10.0.0.4:8093` (error: Get \"https:\/\/10.0.0.4:8093\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Search service at `10.0.0.4:8094` (error: Get \"https:\/\/10.0.0.4:8094\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Analytics service at `10.0.0.4:8095` (error: Get \"https:\/\/10.0.0.4:8095\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Key Value service at `10.0.0.5:11210` (error: dial tcp 10.0.0.5:11210: i\/o timeout)\r\n[ERRO] Failed to connect to Management service at `10.0.0.5:8091` (error: Get \"https:\/\/10.0.0.5:8091\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Views service at `10.0.0.5:8092` (error: Get \"https:\/\/10.0.0.5:8092\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Query service at `10.0.0.5:8093` (error: Get \"https:\/\/10.0.0.5:8093\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Search service at `10.0.0.5:8094` (error: Get \"https:\/\/10.0.0.5:8094\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Analytics service at `10.0.0.5:8095` (error: Get \"https:\/\/10.0.0.5:8095\/\": dial tcp 10.0.0.5:8095: i\/o timeout (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Key Value service at `10.0.0.6:11210` (error: dial tcp 10.0.0.6:11210: i\/o timeout)\r\n[ERRO] Failed to connect to Management service at `10.0.0.6:8091` (error: Get \"https:\/\/10.0.0.6:8091\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Views service at `10.0.0.6:8092` (error: Get \"https:\/\/10.0.0.6:8092\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Query service at `10.0.0.6:8093` (error: Get \"https:\/\/10.0.0.6:8093\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Search service at `10.0.0.6:8094` (error: Get \"https:\/\/10.0.0.6:8094\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n[ERRO] Failed to connect to Analytics service at `10.0.0.6:8095` (error: Get \"https:\/\/10.0.0.6:8095\/\": context deadline exceeded (Client.Timeout exceeded while awaiting headers))\r\n\r\nFound multiple issues, see listing above.\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h2>Using the Couchbase Alternate Address<\/h2>\n<p>Couchbase Server allows an alternate address to be assigned to any individual cluster-node, and an alternate port number to be assigned to any service running on that node.<\/p>\n<p>The assigning of alternate addresses and port numbers \u2013 which can be accomplished by means of the CLI and the REST API \u2013 may facilitate communication with external applications that are not permitted to contact a cluster\u2019s nodes directly. However, they may have access to a router or other networked entity that provides externally visible addresses on the nodes\u2019 behalf.<\/p>\n<p>Dive into <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/clusters-and-availability\/connectivity.html?ref=blog#alternate-addresses\" target=\"_blank\" rel=\"noopener\">the Couchbase documentation on using alternate addresses to learn more<\/a>.<\/p>\n<h2>Add the Couchbase Alternate Address<\/h2>\n<p>There is a REST call to update the alternate address for your Couchbase cluster. (For more information, <a href=\"https:\/\/docs.couchbase.com\/server\/current\/rest-api\/rest-set-up-alternate-address.html?ref=blog\" target=\"_blank\" rel=\"noopener\">check out the Couchbase documentation on managing alternate addresses with the REST API<\/a>.)<\/p>\n<p>Next, you&#8217;ll want to update the alternate address for each IP address in the cluster. This maps the internal to the IP address that you specify.<\/p>\n<pre class=\"toolbar:1\">curl -v -X PUT -u asdf88495:Password1!@#$ https:\/\/40.80.151.197:8091\/node\/controller\/setupAlternateAddresses\/external -d hostname=40.80.151.197\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>You should get a 200 response, as you can see below.<\/p>\n<pre class=\"toolbar:1 lang:default decode:true \">*   Trying 13.82.230.238...\r\n* TCP_NODELAY set\r\n* Connected to 13.82.230.238 (13.82.230.238) port 8091 (#0)\r\n* Server auth using Basic with user 'asdf88495'\r\n&gt; PUT \/node\/controller\/setupAlternateAddresses\/external HTTP\/1.1\r\n&gt; Host: 13.82.230.238:8091\r\n&gt; Authorization: Basic YXNkZjg4NDk1OlBhc3N3b3JkMSFAIyQ=\r\n&gt; User-Agent: curl\/7.55.1\r\n&gt; Accept: *\/*\r\n&gt; Content-Length: 22\r\n&gt; Content-Type: application\/x-www-form-urlencoded\r\n&gt;\r\n* upload completely sent off: 22 out of 22 bytes\r\n&lt; HTTP\/1.1 200 OK\r\n&lt; X-XSS-Protection: 1; mode=block\r\n&lt; X-Permitted-Cross-Domain-Policies: none\r\n&lt; X-Frame-Options: DENY\r\n&lt; X-Content-Type-Options: nosniff\r\n&lt; Server: Couchbase Server\r\n&lt; Pragma: no-cache\r\n&lt; Expires: Thu, 01 Jan 1970 00:00:00 GMT\r\n&lt; Date: Mon, 28 Jun 2021 18:59:31 GMT\r\n&lt; Content-Length: 0\r\n&lt; Cache-Control: no-cache,no-store,must-revalidate\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Repeat the command for the other hosts as well, like so:<\/p>\n<pre class=\"toolbar:1\">curl -v -X PUT -u asdf88495:Password1!@#$ https:\/\/40.80.146.52:8091\/node\/controller\/setupAlternateAddresses\/external -d hostname=40.80.146.52\r\n<\/pre>\n<pre class=\"toolbar:1\">curl -v -X PUT -u asdf88495:Password1!@#$ https:\/\/13.82.230.238:8091\/node\/controller\/setupAlternateAddresses\/external -d hostname=13.82.230.238\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h2>2. Running the SDK Doctor to Confirm Success<\/h2>\n<p>Now, run the SDK Doctor again to confirm success. You should get something like this below:<\/p>\n<p>You may need to double-click the code sample below to see the full output (depending on your device).<\/p>\n<pre class=\"toolbar:1 lang:default decode:true \">C:\\david\\bin\\Couchbase&gt; .\\sdk-doctor-windows.exe diagnose couchbase:\/\/40.80.151.197,40.80.146.52,13.82.230.238\/beer-sample  -u asdf88495 -p Password1!@#$\r\n|====================================================================|\r\n|          ___ ___  _  __   ___   ___   ___ _____ ___  ___           |\r\n|         \/ __|   \\| |\/ \/__|   \\ \/ _ \\ \/ __|_   _\/ _ \\| _ \\          |\r\n|         \\__ \\ |) | ' &lt;___| |) | (_) | (__  | || (_) |   \/          |\r\n|         |___\/___\/|_|\\_\\  |___\/ \\___\/ \\___| |_| \\___\/|_|_\\          |\r\n|                                                                    |\r\n|====================================================================|\r\n\r\nNote: Diagnostics can only provide accurate results when your cluster\r\n is in a stable state.  Active rebalancing and other cluster configuration\r\n changes can cause the output of the doctor to be inconsistent or in the\r\n worst cases, completely incorrect.\r\n\r\n13:59:33.729 INFO \u25b6 Parsing connection string `couchbase:\/\/40.80.151.197,40.80.146.52,13.82.230.238\/beer-sample`\r\n13:59:33.730 INFO \u25b6 Connection string identifies the following CCCP endpoints:\r\n13:59:33.730 INFO \u25b6   1. 40.80.151.197:11210\r\n13:59:33.730 INFO \u25b6   2. 40.80.146.52:11210\r\n13:59:33.730 INFO \u25b6   3. 13.82.230.238:11210\r\n13:59:33.730 INFO \u25b6 Connection string identifies the following HTTP endpoints:\r\n13:59:33.731 INFO \u25b6   1. 40.80.151.197:8091\r\n13:59:33.731 INFO \u25b6   2. 40.80.146.52:8091\r\n13:59:33.731 INFO \u25b6   3. 13.82.230.238:8091\r\n13:59:33.731 INFO \u25b6 Connection string specifies bucket `beer-sample`\r\n13:59:33.731 INFO \u25b6 Performing DNS lookup for host `40.80.151.197`\r\n13:59:33.731 INFO \u25b6 Performing DNS lookup for host `40.80.146.52`\r\n13:59:33.731 INFO \u25b6 Performing DNS lookup for host `13.82.230.238`\r\n13:59:33.731 INFO \u25b6 Attempting to connect to cluster via CCCP\r\n13:59:33.732 INFO \u25b6 Attempting to fetch config via cccp from `40.80.151.197:11210`\r\n13:59:33.947 INFO \u25b6 Attempting to fetch config via cccp from `40.80.146.52:11210`\r\n13:59:34.171 INFO \u25b6 Attempting to fetch config via cccp from `13.82.230.238:11210`\r\n13:59:34.391 WARN \u25b6 Bootstrap host `40.80.151.197` is not using the canonical node hostname of `10.0.0.4`.  This is not neccessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n13:59:34.392 WARN \u25b6 Bootstrap host `40.80.146.52` is not using the canonical node hostname of `10.0.0.5`.  This is not neccessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n13:59:34.393 WARN \u25b6 Bootstrap host `13.82.230.238` is not using the canonical node hostname of `10.0.0.6`.  This is not neccessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n13:59:34.394 INFO \u25b6 Selected the following network type: external\r\n13:59:34.394 INFO \u25b6 Identified the following nodes:\r\n13:59:34.394 INFO \u25b6   [0] 40.80.151.197\r\n13:59:34.395 INFO \u25b6                projector:  9999,                 n1ql:  8093,              n1qlSSL: 18093\r\n13:59:34.395 INFO \u25b6                  cbasSSL: 18095,           indexAdmin:  9100,                kvSSL: 11207\r\n13:59:34.396 INFO \u25b6                     capi:  8092,              capiSSL: 18092,   indexStreamCatchup:  9104\r\n13:59:34.396 INFO \u25b6                  mgmtSSL: 18091,    eventingAdminPort:  8096,          eventingSSL: 18096\r\n13:59:34.397 INFO \u25b6                      fts:  8094,              ftsGRPC:  9130,        eventingDebug:  9140\r\n13:59:34.397 INFO \u25b6                indexHttp:  9102,     indexStreamMaint:  9105,      indexStreamInit:  9103\r\n13:59:34.398 INFO \u25b6               indexHttps: 19102,                   kv: 11210,                 mgmt:  8091\r\n13:59:34.398 INFO \u25b6                     cbas:  8095,               ftsSSL: 18094,           ftsGRPCSSL: 19130\r\n13:59:34.399 INFO \u25b6                indexScan:  9101\r\n13:59:34.399 INFO \u25b6   [1] 40.80.146.52\r\n13:59:34.400 INFO \u25b6                  capiSSL: 18092,              mgmtSSL: 18091,      indexStreamInit:  9103\r\n13:59:34.400 INFO \u25b6       indexStreamCatchup:  9104,     indexStreamMaint:  9105,           indexHttps: 19102\r\n13:59:34.400 INFO \u25b6                     n1ql:  8093,              n1qlSSL: 18093,              cbasSSL: 18095\r\n13:59:34.401 INFO \u25b6            eventingDebug:  9140,          eventingSSL: 18096,                  fts:  8094\r\n13:59:34.401 INFO \u25b6                  ftsGRPC:  9130,                 mgmt:  8091,                 cbas:  8095\r\n13:59:34.402 INFO \u25b6        eventingAdminPort:  8096,            indexScan:  9101,                kvSSL: 11207\r\n13:59:34.402 INFO \u25b6                     capi:  8092,            projector:  9999,               ftsSSL: 18094\r\n13:59:34.403 INFO \u25b6               ftsGRPCSSL: 19130,           indexAdmin:  9100,            indexHttp:  9102\r\n13:59:34.403 INFO \u25b6                       kv: 11210\r\n13:59:34.403 INFO \u25b6   [2] 13.82.230.238\r\n13:59:34.404 INFO \u25b6                       kv: 11210,            projector:  9999,          eventingSSL: 18096\r\n13:59:34.404 INFO \u25b6          indexStreamInit:  9103,           indexHttps: 19102,     indexStreamMaint:  9105\r\n13:59:34.405 INFO \u25b6                    kvSSL: 11207,              capiSSL: 18092,    eventingAdminPort:  8096\r\n13:59:34.406 INFO \u25b6                  ftsGRPC:  9130,            indexScan:  9101,           ftsGRPCSSL: 19130\r\n13:59:34.406 INFO \u25b6       indexStreamCatchup:  9104,                 n1ql:  8093,              n1qlSSL: 18093\r\n13:59:34.407 INFO \u25b6                     mgmt:  8091,              mgmtSSL: 18091,               ftsSSL: 18094\r\n13:59:34.407 INFO \u25b6                      fts:  8094,           indexAdmin:  9100,            indexHttp:  9102\r\n13:59:34.407 INFO \u25b6                     capi:  8092,                 cbas:  8095,              cbasSSL: 18095\r\n13:59:34.408 INFO \u25b6            eventingDebug:  9140\r\n13:59:34.408 INFO \u25b6 Fetching config from `https:\/\/40.80.151.197:8091`\r\n13:59:34.511 INFO \u25b6 Received cluster configuration, nodes list:\r\n[\r\n  {\r\n    \"addressFamily\": \"inet\",\r\n    \"alternateAddresses\": {\r\n      \"external\": {\r\n        \"hostname\": \"40.80.151.197\",\r\n        \"ports\": {\r\n          \"capi\": 8092,\r\n          \"capiSSL\": 18092,\r\n          \"kv\": 11210,\r\n          \"mgmt\": 8091,\r\n          \"mgmtSSL\": 18091\r\n        }\r\n      }\r\n    },\r\n    \"clusterCompatibility\": 393222,\r\n    \"clusterMembership\": \"active\",\r\n    \"configuredHostname\": \"10.0.0.4:8091\",\r\n    \"couchApiBase\": \"https:\/\/10.0.0.4:8092\/\",\r\n    \"couchApiBaseHTTPS\": \"https:\/\/10.0.0.4:18092\/\",\r\n    \"cpuCount\": 4,\r\n    \"externalListeners\": [\r\n      {\r\n        \"afamily\": \"inet\",\r\n        \"nodeEncryption\": false\r\n      },\r\n      {\r\n        \"afamily\": \"inet6\",\r\n        \"nodeEncryption\": false\r\n      }\r\n    ],\r\n    \"hostname\": \"10.0.0.4:8091\",\r\n    \"interestingStats\": {\r\n      \"cmd_get\": 0,\r\n      \"couch_docs_actual_disk_size\": 17689291,\r\n      \"couch_docs_data_size\": 11756324,\r\n      \"couch_spatial_data_size\": 0,\r\n      \"couch_spatial_disk_size\": 0,\r\n      \"couch_views_actual_disk_size\": 22774,\r\n      \"couch_views_data_size\": 11416,\r\n      \"curr_items\": 2475,\r\n      \"curr_items_tot\": 4897,\r\n      \"ep_bg_fetched\": 0,\r\n      \"get_hits\": 0,\r\n      \"mem_used\": 22484624,\r\n      \"ops\": 0,\r\n      \"vb_active_num_non_resident\": 0,\r\n      \"vb_replica_curr_items\": 2422\r\n    },\r\n    \"mcdMemoryAllocated\": 22468,\r\n    \"mcdMemoryReserved\": 22468,\r\n    \"memoryFree\": 27792080896,\r\n    \"memoryTotal\": 29450268672,\r\n    \"nodeEncryption\": false,\r\n    \"nodeUUID\": \"616c0853d0e7cbacab9cbdd6ec7a51f7\",\r\n    \"os\": \"x86_64-unknown-linux-gnu\",\r\n    \"otpNode\": \"ns_1@10.0.0.4\",\r\n    \"ports\": {\r\n      \"direct\": 11210,\r\n      \"distTCP\": 21100,\r\n      \"distTLS\": 21150,\r\n      \"httpsCAPI\": 18092,\r\n      \"httpsMgmt\": 18091\r\n    },\r\n    \"recoveryType\": \"none\",\r\n    \"services\": [\r\n      \"cbas\",\r\n      \"eventing\",\r\n      \"fts\",\r\n      \"index\",\r\n      \"kv\",\r\n      \"n1ql\"\r\n    ],\r\n    \"status\": \"healthy\",\r\n    \"systemStats\": {\r\n      \"allocstall\": 0,\r\n      \"cpu_cores_available\": 4,\r\n      \"cpu_stolen_rate\": 0,\r\n      \"cpu_utilization_rate\": 3.282828282828283,\r\n      \"mem_free\": 27792080896,\r\n      \"mem_limit\": 29450268672,\r\n      \"mem_total\": 29450268672,\r\n      \"swap_total\": 0,\r\n      \"swap_used\": 0\r\n    },\r\n    \"thisNode\": true,\r\n    \"uptime\": \"1122\",\r\n    \"version\": \"6.6.2-9588-enterprise\"\r\n  },\r\n  {\r\n    \"addressFamily\": \"inet\",\r\n    \"alternateAddresses\": {\r\n      \"external\": {\r\n        \"hostname\": \"40.80.146.52\",\r\n        \"ports\": {\r\n          \"capi\": 8092,\r\n          \"capiSSL\": 18092,\r\n          \"kv\": 11210,\r\n          \"mgmt\": 8091,\r\n          \"mgmtSSL\": 18091\r\n        }\r\n      }\r\n    },\r\n    \"clusterCompatibility\": 393222,\r\n    \"clusterMembership\": \"active\",\r\n    \"configuredHostname\": \"10.0.0.5:8091\",\r\n    \"couchApiBase\": \"https:\/\/10.0.0.5:8092\/\",\r\n    \"couchApiBaseHTTPS\": \"https:\/\/10.0.0.5:18092\/\",\r\n    \"cpuCount\": 4,\r\n    \"externalListeners\": [\r\n      {\r\n        \"afamily\": \"inet\",\r\n        \"nodeEncryption\": false\r\n      },\r\n      {\r\n        \"afamily\": \"inet6\",\r\n        \"nodeEncryption\": false\r\n      }\r\n    ],\r\n    \"hostname\": \"10.0.0.5:8091\",\r\n    \"interestingStats\": {\r\n      \"cmd_get\": 0,\r\n      \"couch_docs_actual_disk_size\": 17275589,\r\n      \"couch_docs_data_size\": 11350638,\r\n      \"couch_spatial_data_size\": 0,\r\n      \"couch_spatial_disk_size\": 0,\r\n      \"couch_views_actual_disk_size\": 22737,\r\n      \"couch_views_data_size\": 11408,\r\n      \"curr_items\": 2415,\r\n      \"curr_items_tot\": 4862,\r\n      \"ep_bg_fetched\": 0,\r\n      \"get_hits\": 0,\r\n      \"mem_used\": 22640944,\r\n      \"ops\": 0,\r\n      \"vb_active_num_non_resident\": 0,\r\n      \"vb_replica_curr_items\": 2447\r\n    },\r\n    \"mcdMemoryAllocated\": 22468,\r\n    \"mcdMemoryReserved\": 22468,\r\n    \"memoryFree\": 28102778880,\r\n    \"memoryTotal\": 29450268672,\r\n    \"nodeEncryption\": false,\r\n    \"nodeUUID\": \"94565e32208f2d93915124d49842258c\",\r\n    \"os\": \"x86_64-unknown-linux-gnu\",\r\n    \"otpNode\": \"ns_1@10.0.0.5\",\r\n    \"ports\": {\r\n      \"direct\": 11210,\r\n      \"distTCP\": 21100,\r\n      \"distTLS\": 21150,\r\n      \"httpsCAPI\": 18092,\r\n      \"httpsMgmt\": 18091\r\n    },\r\n    \"recoveryType\": \"none\",\r\n    \"services\": [\r\n      \"cbas\",\r\n      \"eventing\",\r\n      \"fts\",\r\n      \"index\",\r\n      \"kv\",\r\n      \"n1ql\"\r\n    ],\r\n    \"status\": \"healthy\",\r\n    \"systemStats\": {\r\n      \"allocstall\": 0,\r\n      \"cpu_cores_available\": 4,\r\n      \"cpu_stolen_rate\": 0,\r\n      \"cpu_utilization_rate\": 2.763819095477387,\r\n      \"mem_free\": 28102778880,\r\n      \"mem_limit\": 29450268672,\r\n      \"mem_total\": 29450268672,\r\n      \"swap_total\": 0,\r\n      \"swap_used\": 0\r\n    },\r\n    \"uptime\": \"1367\",\r\n    \"version\": \"6.6.2-9588-enterprise\"\r\n  },\r\n  {\r\n    \"addressFamily\": \"inet\",\r\n    \"alternateAddresses\": {\r\n      \"external\": {\r\n        \"hostname\": \"13.82.230.238\",\r\n        \"ports\": {\r\n          \"capi\": 8092,\r\n          \"capiSSL\": 18092,\r\n          \"kv\": 11210,\r\n          \"mgmt\": 8091,\r\n          \"mgmtSSL\": 18091\r\n        }\r\n      }\r\n    },\r\n    \"clusterCompatibility\": 393222,\r\n    \"clusterMembership\": \"active\",\r\n    \"configuredHostname\": \"10.0.0.6:8091\",\r\n    \"couchApiBase\": \"https:\/\/10.0.0.6:8092\/\",\r\n    \"couchApiBaseHTTPS\": \"https:\/\/10.0.0.6:18092\/\",\r\n    \"cpuCount\": 4,\r\n    \"externalListeners\": [\r\n      {\r\n        \"afamily\": \"inet\",\r\n        \"nodeEncryption\": false\r\n      },\r\n      {\r\n        \"afamily\": \"inet6\",\r\n        \"nodeEncryption\": false\r\n      }\r\n    ],\r\n    \"hostname\": \"10.0.0.6:8091\",\r\n    \"interestingStats\": {\r\n      \"cmd_get\": 0,\r\n      \"couch_docs_actual_disk_size\": 17363691,\r\n      \"couch_docs_data_size\": 11432558,\r\n      \"couch_spatial_data_size\": 0,\r\n      \"couch_spatial_disk_size\": 0,\r\n      \"couch_views_actual_disk_size\": 22756,\r\n      \"couch_views_data_size\": 11415,\r\n      \"curr_items\": 2413,\r\n      \"curr_items_tot\": 4847,\r\n      \"ep_bg_fetched\": 0,\r\n      \"get_hits\": 0,\r\n      \"mem_used\": 22550192,\r\n      \"ops\": 0,\r\n      \"vb_active_num_non_resident\": 0,\r\n      \"vb_replica_curr_items\": 2434\r\n    },\r\n    \"mcdMemoryAllocated\": 22468,\r\n    \"mcdMemoryReserved\": 22468,\r\n    \"memoryFree\": 28038606848,\r\n    \"memoryTotal\": 29450268672,\r\n    \"nodeEncryption\": false,\r\n    \"nodeUUID\": \"d66d1a929cde564fa27cec0d3ef56520\",\r\n    \"os\": \"x86_64-unknown-linux-gnu\",\r\n    \"otpNode\": \"ns_1@10.0.0.6\",\r\n    \"ports\": {\r\n      \"direct\": 11210,\r\n      \"distTCP\": 21100,\r\n      \"distTLS\": 21150,\r\n      \"httpsCAPI\": 18092,\r\n      \"httpsMgmt\": 18091\r\n    },\r\n    \"recoveryType\": \"none\",\r\n    \"services\": [\r\n      \"cbas\",\r\n      \"eventing\",\r\n      \"fts\",\r\n      \"index\",\r\n      \"kv\",\r\n      \"n1ql\"\r\n    ],\r\n    \"status\": \"healthy\",\r\n    \"systemStats\": {\r\n      \"allocstall\": 0,\r\n      \"cpu_cores_available\": 4,\r\n      \"cpu_stolen_rate\": 0,\r\n      \"cpu_utilization_rate\": 1.754385964912281,\r\n      \"mem_free\": 28038606848,\r\n      \"mem_limit\": 29450268672,\r\n      \"mem_total\": 29450268672,\r\n      \"swap_total\": 0,\r\n      \"swap_used\": 0\r\n    },\r\n    \"uptime\": \"1136\",\r\n    \"version\": \"6.6.2-9588-enterprise\"\r\n  }\r\n]\r\n13:59:34.706 INFO \u25b6 Successfully connected to Key Value service at `40.80.151.197:11210`\r\n13:59:34.845 INFO \u25b6 Successfully connected to Management service at `40.80.151.197:8091`\r\n13:59:34.933 INFO \u25b6 Successfully connected to Views service at `40.80.151.197:8092`\r\n13:59:35.020 INFO \u25b6 Successfully connected to Query service at `40.80.151.197:8093`\r\n13:59:35.108 INFO \u25b6 Successfully connected to Search service at `40.80.151.197:8094`\r\n13:59:35.200 INFO \u25b6 Successfully connected to Analytics service at `40.80.151.197:8095`\r\n13:59:35.377 INFO \u25b6 Successfully connected to Key Value service at `40.80.146.52:11210`\r\n13:59:35.515 INFO \u25b6 Successfully connected to Management service at `40.80.146.52:8091`\r\n13:59:35.619 INFO \u25b6 Successfully connected to Views service at `40.80.146.52:8092`\r\n13:59:35.713 INFO \u25b6 Successfully connected to Query service at `40.80.146.52:8093`\r\n13:59:35.803 INFO \u25b6 Successfully connected to Search service at `40.80.146.52:8094`\r\n13:59:35.903 INFO \u25b6 Successfully connected to Analytics service at `40.80.146.52:8095`\r\n13:59:36.074 INFO \u25b6 Successfully connected to Key Value service at `13.82.230.238:11210`\r\n13:59:36.206 INFO \u25b6 Successfully connected to Management service at `13.82.230.238:8091`\r\n13:59:36.308 INFO \u25b6 Successfully connected to Views service at `13.82.230.238:8092`\r\n13:59:36.397 INFO \u25b6 Successfully connected to Query service at `13.82.230.238:8093`\r\n13:59:36.487 INFO \u25b6 Successfully connected to Search service at `13.82.230.238:8094`\r\n13:59:36.591 INFO \u25b6 Successfully connected to Analytics service at `13.82.230.238:8095`\r\n13:59:37.207 INFO \u25b6 Memd Nop Pinged `40.80.151.197:11210` 10 times, 0 errors, 42ms min, 45ms max, 43ms mean\r\n13:59:37.208 WARN \u25b6 Memcached service on `40.80.151.197:11210` on average took longer than 10ms (was: 43ms) to reply.  This is usually due to network-related issues, and could significantly affect application performance.\r\n13:59:37.209 WARN \u25b6 Memcached service on `40.80.151.197:11210` maximally took longer than 20ms (was: 45ms) to reply. This is usually due to network-related issues, and could significantly affect application performance.\r\n13:59:37.803 INFO \u25b6 Memd Nop Pinged `40.80.146.52:11210` 10 times, 0 errors, 42ms min, 42ms max, 42ms mean\r\n13:59:37.804 WARN \u25b6 Memcached service on `40.80.146.52:11210` on average took longer than 10ms (was: 42ms) to reply.  This is usually due to network-related issues, and could significantly affect application performance.\r\n13:59:37.804 WARN \u25b6 Memcached service on `40.80.146.52:11210` maximally took longer than 20ms (was: 42ms) to reply. This is usually due to network-related issues, and could significantly affect application performance.\r\n13:59:38.423 INFO \u25b6 Memd Nop Pinged `13.82.230.238:11210` 10 times, 0 errors, 43ms min, 44ms max, 44ms mean\r\n13:59:38.423 WARN \u25b6 Memcached service on `13.82.230.238:11210` on average took longer than 10ms (was: 44ms) to reply.  This is usually due to network-related issues, and could significantly affect application performance.\r\n13:59:38.423 WARN \u25b6 Memcached service on `13.82.230.238:11210` maximally took longer than 20ms (was: 44ms) to reply. This is usually due to network-related issues, and could significantly affect application performance.\r\n13:59:38.424 INFO \u25b6 Diagnostics completed\r\n\r\nSummary:\r\n[WARN] Bootstrap host `40.80.151.197` is not using the canonical node hostname of `10.0.0.4`.  This is not neccessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n[WARN] Bootstrap host `40.80.146.52` is not using the canonical node hostname of `10.0.0.5`.  This is not neccessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n[WARN] Bootstrap host `13.82.230.238` is not using the canonical node hostname of `10.0.0.6`.  This is not neccessarily an error, but has been known to result in strange and challenging to diagnose errors when DNS entries are reconfigured.\r\n[WARN] Memcached service on `40.80.151.197:11210` on average took longer than 10ms (was: 43ms) to reply.  This is usually due to network-related issues, and could significantly affect application performance.\r\n[WARN] Memcached service on `40.80.151.197:11210` maximally took longer than 20ms (was: 45ms) to reply. This is usually due to network-related issues, and could significantly affect application performance.\r\n[WARN] Memcached service on `40.80.146.52:11210` on average took longer than 10ms (was: 42ms) to reply.  This is usually due to network-related issues, and could significantly affect application performance.\r\n[WARN] Memcached service on `40.80.146.52:11210` maximally took longer than 20ms (was: 42ms) to reply. This is usually due to network-related issues, and could significantly affect application performance.\r\n[WARN] Memcached service on `13.82.230.238:11210` on average took longer than 10ms (was: 44ms) to reply.  This is usually due to network-related issues, and could significantly affect application performance.\r\n[WARN] Memcached service on `13.82.230.238:11210` maximally took longer than 20ms (was: 44ms) to reply. This is usually due to network-related issues, and could significantly affect application performance.\r\n\r\nFound multiple issues, see listing above.\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Success!<\/p>\n<h2>Conclusion<\/h2>\n<p>Connecting to Couchbase clusters in the cloud offers a lot of advantages. But sometimes \u2013 due to various network and security requirements \u2013 the remote and distributed nature of systems can cause complications between your app SDK and the Couchbase cluster.<\/p>\n<p>By using the Couchbase SDK Doctor and Alternate Addresses, you can easily troubleshoot any complications that arise and fix connection problems right away.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 30px\" aria-hidden=\"true\"><\/div>\n<div style=\"text-align: center\"><strong>Ready to try out Couchbase Server for yourself?&lt;br\/ &gt;<a href=\"https:\/\/www.couchbase.com\/downloads\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Take Couchbase 7 for a spin<\/a><\/strong><\/div>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s a common experience to run into network connection errors when you&#8217;re developing an application \u2013 particularly if you&#8217;re connecting from your local computer SDK to a remote cluster. Is your SDK not connected? You&#8217;re likely to run into situations [&hellip;]<\/p>\n","protected":false},"author":76330,"featured_media":11907,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,2242,1816,2389,2366,2201],"tags":[1245,1673,1950,9305],"ppma_author":[9391],"class_list":["post-11766","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-connectors","category-couchbase-server","category-solutions","category-sync-gateway","category-tools-sdks","tag-cloud","tag-microsoft-azure","tag-rest-api","tag-virtual-machine"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SDK Not Connected: Diagnose Using SDK Doctor &amp; Couchbase<\/title>\n<meta name=\"description\" content=\"Is your SDK not connecting? The walkthrough on this blog post will demonstrate how to diagnose using SDK Doctor &amp; Couchbase Alternate Addresses.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Troubleshoot Your SDK Connection using SDK Doctor &amp; Couchbase Alternate Addresses\" \/>\n<meta property=\"og:description\" content=\"Is your SDK not connecting? The walkthrough on this blog post will demonstrate how to diagnose using SDK Doctor &amp; Couchbase Alternate Addresses.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-10T07:00:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:03:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections-social.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"418\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"David Elliott, Solutions Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections-social.png\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Elliott, Solutions Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/\"},\"author\":{\"name\":\"David Elliott, Solutions Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/83d6351038e224227bff7d6385cfc87c\"},\"headline\":\"How to Troubleshoot Your SDK Connection using SDK Doctor &amp; Couchbase Alternate Addresses\",\"datePublished\":\"2021-09-10T07:00:25+00:00\",\"dateModified\":\"2025-06-14T04:03:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/\"},\"wordCount\":996,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections.png\",\"keywords\":[\"cloud\",\"Microsoft Azure\",\"REST API\",\"virtual machine\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Connectors\",\"Couchbase Server\",\"Solutions\",\"Sync Gateway\",\"Tools &amp; SDKs\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/\",\"name\":\"SDK Not Connected: Diagnose Using SDK Doctor & Couchbase\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections.png\",\"datePublished\":\"2021-09-10T07:00:25+00:00\",\"dateModified\":\"2025-06-14T04:03:51+00:00\",\"description\":\"Is your SDK not connecting? The walkthrough on this blog post will demonstrate how to diagnose using SDK Doctor & Couchbase Alternate Addresses.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections.png\",\"width\":1200,\"height\":628,\"caption\":\"Discover how to troubleshoot (and fix) network and SDK connection errors using Couchbase SDK Doctor\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Troubleshoot Your SDK Connection using SDK Doctor &amp; Couchbase Alternate Addresses\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/83d6351038e224227bff7d6385cfc87c\",\"name\":\"David Elliott, Solutions Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/56b47f3906eb1da4c4bab7db411e5f42\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/david-elliott-couchbase.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/david-elliott-couchbase.jpeg\",\"caption\":\"David Elliott, Solutions Engineer, Couchbase\"},\"description\":\"Solutions Engineer at Couchbase, jack of all trades, master of some.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/david-elliott\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SDK Not Connected: Diagnose Using SDK Doctor & Couchbase","description":"Is your SDK not connecting? The walkthrough on this blog post will demonstrate how to diagnose using SDK Doctor & Couchbase Alternate Addresses.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/","og_locale":"en_US","og_type":"article","og_title":"How to Troubleshoot Your SDK Connection using SDK Doctor &amp; Couchbase Alternate Addresses","og_description":"Is your SDK not connecting? The walkthrough on this blog post will demonstrate how to diagnose using SDK Doctor & Couchbase Alternate Addresses.","og_url":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-09-10T07:00:25+00:00","article_modified_time":"2025-06-14T04:03:51+00:00","og_image":[{"width":800,"height":418,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections-social.png","type":"image\/png"}],"author":"David Elliott, Solutions Engineer","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections-social.png","twitter_misc":{"Written by":"David Elliott, Solutions Engineer","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/"},"author":{"name":"David Elliott, Solutions Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/83d6351038e224227bff7d6385cfc87c"},"headline":"How to Troubleshoot Your SDK Connection using SDK Doctor &amp; Couchbase Alternate Addresses","datePublished":"2021-09-10T07:00:25+00:00","dateModified":"2025-06-14T04:03:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/"},"wordCount":996,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections.png","keywords":["cloud","Microsoft Azure","REST API","virtual machine"],"articleSection":["Best Practices and Tutorials","Connectors","Couchbase Server","Solutions","Sync Gateway","Tools &amp; SDKs"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/","url":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/","name":"SDK Not Connected: Diagnose Using SDK Doctor & Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections.png","datePublished":"2021-09-10T07:00:25+00:00","dateModified":"2025-06-14T04:03:51+00:00","description":"Is your SDK not connecting? The walkthrough on this blog post will demonstrate how to diagnose using SDK Doctor & Couchbase Alternate Addresses.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-sdk-doctor-troubleshooting-sdk-network-connections.png","width":1200,"height":628,"caption":"Discover how to troubleshoot (and fix) network and SDK connection errors using Couchbase SDK Doctor"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/troubleshoot-sdk-connection-with-sdk-doctor-alternate-addresses\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Troubleshoot Your SDK Connection using SDK Doctor &amp; Couchbase Alternate Addresses"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/83d6351038e224227bff7d6385cfc87c","name":"David Elliott, Solutions Engineer, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/56b47f3906eb1da4c4bab7db411e5f42","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/david-elliott-couchbase.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/david-elliott-couchbase.jpeg","caption":"David Elliott, Solutions Engineer, Couchbase"},"description":"Solutions Engineer at Couchbase, jack of all trades, master of some.","url":"https:\/\/www.couchbase.com\/blog\/author\/david-elliott\/"}]}},"authors":[{"term_id":9391,"user_id":76330,"is_guest":0,"slug":"david-elliott","display_name":"David Elliott, Solutions Engineer","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/david-elliott-couchbase.jpeg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/david-elliott-couchbase.jpeg"},"author_category":"","last_name":"Elliott, Solutions Engineer","first_name":"David","job_title":"","user_url":"","description":"Solutions Engineer at Couchbase, jack of all trades, master of some."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/11766","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/76330"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=11766"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/11766\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/11907"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=11766"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=11766"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=11766"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=11766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}