Australia
Asked
Resolved Resolved by Athena!

Handling Script Errors In ARC

How can I handle errors in a script within ARC, especially errors like "Error in response received: The remote name could not be resolved: 'admin.synthiam.com'"? This issue occurs even though my robot's computer is connected to the internet. I am using the ChatGPT Robot Skill.



Related Hardware (view all EZB hardware)
EZ-B V4 by EZ-Robot
EZ-B v4/2 robot controller: dual Cortex ARM, Wi-Fi, audio/video, 24 servo/digital ports, I2C/UART, camera and Synthiam ARC control for custom robots
Wi-Fi / USB
Servos 24
Camera
Audio
UART 3
I2C
ADC 8
Digital 24

Related Robot Skills (view all robot skills)
Debug by Synthiam
Central ARC debug window routing logs; shows UTC date/time, Windows/ARC/skill/hardware info, version/settings, with copy and clear.
ChatGPT conversational AI for ARC robots-configurable personality, memory, image description, script execution, speech and API integration.

ARC Pro

Upgrade to ARC Pro

Unleash your robot's full potential with the cutting-edge features and intuitive programming offered by Synthiam ARC Pro.

Author Avatar
PRO
Canada
#1  

Good description - that error ("The remote name could not be resolved: 'admin.synthiam.com'") is a network / DNS resolution error (the ChatGPT robot skill tried to contact Synthiam’s server but the computer couldn’t resolve the host name). Below are stepbystep checks, fixes, and example ARC JavaScript you can add to your project to both diagnose and gracefully handle this in a script.

Quick summary

  • The problem is network/DNS (not ARC code). ARC or the OpenAI skill can’t resolve admin.synthiam.com.
  • Common causes: firewall/filtered network (school/company), blocked DNS, proxy/VPN, captive portal, or misconfigured local DNS/hosts.
  • Fixes: allow synthiam.com/admin.synthiam.com outbound HTTPS (port 443), use public DNS (1.1.1.1 or 8.8.8.8), disable VPN/proxy, or have IT whitelist synthiam.com. See ARC Internet requirements: https://synthiam.com/Support/Install/Internet-Access-Requirements
  1. Quick network checks to run now
  • Can you open https://admin.synthiam.com and https://synthiam.com in a web browser from the robot/computer?
  • Are you on a school/corporate network or using a VPN/proxy?
  • Do other cloud features in ARC (updates, skill store) work, or do they show similar errors?
  1. Simple ARC tests you can run (JavaScript) Paste these into a JavaScript script control or use the Script Editor. These will show if ARC thinks the internet is available, and attempt to contact admin.synthiam.com.

Network availability test:

// Quick internet check
if (!Net.isInternetAvailable()) {
  print("Net.isInternetAvailable() => FALSE");
} else {
  print("Net.isInternetAvailable() => TRUE");
}

Try HTTP GET (DNS + HTTPS test) with basic try/catch:

try {
  var r = Net.hTTPGet("https://admin.synthiam.com";, 5000);
  print("admin.synthiam.com reachable, response length: " + (r ? r.length : 0));
} catch (e) {
  print("HTTP GET failed: " + e);
  setVar("$LastNetworkError", e); // save for later inspection
}
  1. How to handle these errors in a script (recommended patterns)
  • Wrap network calls in try/catch.
  • Implement a retry with backoff.
  • Provide fallbacks (cached responses, user message, or queue requests).
  • Detect and handle the specific error message and notify the user or set a global variable to trigger alternate behavior.

Example: wrapper to send text to the ChatGPT skill and handle errors / timeouts:

// Send a request to the OpenAI ChatGPT skill and wait for a response variable.
// Returns the response string or throws an error.
function sendToOpenAI(request, timeoutSec) {
  // Clear previous response
  setVar("$OpenAIResponse", "");

  // Send request to the OpenAI ChatGPT skill
  controlCommand("OpenAI ChatGPT", "Send", request);

  // Wait for $OpenAIResponse to be populated (polling)
  var waited = 0;
  var interval = 200; // ms
  while (getVar("$OpenAIResponse", "") === "" && waited < timeoutSec * 1000) {
    sleep(interval);
    waited += interval;
  }

  var resp = getVar("$OpenAIResponse", "timeout");
  if (resp === "timeout") {
    throw "OpenAI response timeout after " + timeoutSec + "s";
  }

  // Detect error text produced by the skill
  if (resp.indexOf("Error in response received:") !== -1 ||
      resp.indexOf("could not be resolved") !== -1) {
    throw resp;
  }

  return resp;
}

// Usage example
try {
  var answer = sendToOpenAI("Hello, how are you?", 30);
  print("AI Response: " + answer);
} catch (err) {
  print("OpenAI call failed: " + err);
  // Fallback: notify user and set a variable
  setVar("$OpenAICallFailed", "1");
  // Optionally speak to user
  Audio.say("Network error contacting OpenAI. Check network or firewall.");
}
  1. Concrete network troubleshooting steps (if tests fail)
  • In a Windows Command Prompt (on the robot PC) run:
    • nslookup admin.synthiam.com
    • tracert admin.synthiam.com
    • (optionally) ping admin.synthiam.com - note ping may be blocked but nslookup shows DNS resolution
  • If nslookup fails, change DNS on the PC to a public DNS (Cloudflare 1.1.1.1 or Google 8.8.8.8) and test again.
  • Disable VPN or corporate proxy temporarily and test.
  • If on school/corporate network, ask IT to allow outbound HTTPS to synthiam.com and admin.synthiam.com on port 443. Also ensure SSL interception (deep packet inspection) isn’t rewriting certificates - SSL inspection can break ARC connections.
  • Check Windows hosts file (C:\Windows\System32\drivers\etc\hosts) for an entry that misdirects synthiam domains.
  • Try from a different network (phone hotspot) to isolate whether network is the issue.
  1. ChatGPT robot skill configuration checks
  • Open the ChatGPT robot skill configuration (kebab menu -> Configure).
    • Verify your OpenAI API key (if used) and model selection.
    • Leave Base Domain blank unless you are using a compatible local server.
  • If the skill is trying to reach synthiam admin servers for licensing or relay, that domain must be reachable from your network.
  1. Use Debug skill to collect logs
  • Add the Debug robot skill (Project -> Add robot skill -> General -> Debug) or use the Debug workspace tab.
  • Clear debug, reproduce the error, then copy the log text (press Copy) and paste it here.
  • I can help interpret the Debug output (I cannot view images - paste text).
  1. If you want automatic retries / graceful fallback
  • Implement the sendToOpenAI pattern above with configurable retry attempts and exponential backoff.
  • Set a global var (setVar("$OpenAIFailed","true")) so other parts of your project can avoid triggering cloud calls until the network is restored.

Follow-ups I need to help further

  1. Are you on a school/corporate network, or at home? Do you use a VPN or proxy?
  2. Can you open https://admin.synthiam.com in the browser on that same computer?
  3. What do these two script tests print for you? (Run Net.isInternetAvailable() and the Net.hTTPGet test above and paste the outputs)
  4. If you run the Debug skill and paste the log text here, I’ll look for the exact network error and advise next steps.

Useful links

If you run the small tests above (Net.isInternetAvailable and HTTP GET to admin.synthiam.com) and paste the results or Debug log text, I’ll guide you to the precise fix and show exactly how to update your script to handle the error cleanly.


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
Author Avatar
PRO
Australia
#2  

Very helpful response. I used the basic try/catch method to determine Network availability. Hopefully this will stop my scripts from falling over.

Author Avatar
PRO
Canada
#3  

Great - glad the try/catch helped. A couple quick suggestions and a ready-to-use JavaScript wrapper you can drop into ARC to make the behavior more robust (retries, backoff, global flags, and timeout handling). This will help prevent scripts from "falling over" when the network/DNS hiccups happen.

  1. Best-practice checklist
  • Always check Net.isInternetAvailable() before network calls.
  • Wrap network calls in try/catch.
  • Use a retry loop with exponential backoff for transient DNS/timeouts.
  • Set a global flag (eg. $OpenAIFailed) so other parts of your project can avoid repeated cloud calls while network is down.
  • Use the Debug skill to capture logs when reproducing issues (Project Add robot skill General Debug). Paste the log text here if you want help interpreting it (I can’t view images).
  1. Drop-in ARC JavaScript wrapper
  • Uses print(), sleep(ms) and ARC globals ($OpenAIResponse / $OpenAIFailed).
  • Returns the AI response string or throws an error after retries.
// sendToOpenAI(request, timeoutSec = 15, maxRetries = 3)
// Sends request to OpenAI ChatGPT skill, waits for $OpenAIResponse,
// retries with exponential backoff on timeout, sets $OpenAIFailed flag.
function sendToOpenAI(request, timeoutSec = 15, maxRetries = 3) {
  // quick internet check
  if (!Net.isInternetAvailable()) {
    print("Network: Net.isInternetAvailable() => FALSE");
    setVar("$OpenAIFailed", "true");
    throw "NoInternet";
  }

  // clear previous response
  setVar("$OpenAIResponse", "");

  for (var attempt = 1; attempt <= maxRetries; attempt++) {
    print("OpenAI send attempt " + attempt + "...");
    try {
      controlCommand("OpenAI ChatGPT", "Send", request);
    } catch (e) {
      print("controlCommand failed: " + e);
      // If  ControlCommand throws, treat as transient and retry
    }

    // wait/poll for response
    var waited = 0;
    var pollMs = 200;
    var timeoutMs = timeoutSec * 1000;

    while (waited < timeoutMs) {
      var resp = getVar("$OpenAIResponse", "");
      if (resp !== "") {
        // success
        setVar("$OpenAIFailed", "false");
        print("OpenAI response received (len=" + resp.length + ")");
        return resp;
      }
      sleep(pollMs);
      waited += pollMs;
    }

    // timed out for this attempt
    print("Attempt " + attempt + " timed out after " + timeoutSec + "s");

    // backoff before next retry (ms)
    var backoff = 500 * Math.pow(2, attempt - 1); // 500, 1000, 2000, ...
    print("Backing off " + backoff + "ms before retry");
    sleep(backoff);
  }

  // all retries failed
  setVar("$OpenAIFailed", "true");
  throw "OpenAIRequestFailed";
}

// Example usage:
try {
  var resp = sendToOpenAI("Describe the room", 20, 3);
  print("AI: " + resp);
} catch (err) {
  print("OpenAI request failed: " + err);
  setVar("$LastOpenAIError", err);
  // fallback action: speak a message, queue the request, or notify user
  // Audio.say("Unable to reach cloud service. Please check network.");
}
  1. Where to change ChatGPT skill settings
  • Open the OpenAI ChatGPT robot skill settings via the kebab menu (three lines) on that skill window.
  • Verify your API key, model, and Base Domain (leave Base Domain blank unless you use a local/compatible server).
  • If your network blocks synthiam admin servers, the skill may fail for licensing/relay - make sure admin.synthiam.com and synthiam.com are reachable (HTTPS port 443). See ARC internet requirements:
    https://synthiam.com/Support/Install/Internet-Access-Requirements
  1. If issues continue
  • Run the small tests we discussed earlier (Net.isInternetAvailable() and Net.hTTPGet("https://admin.synthiam.com",5000)) and paste the printed output here.
  • Add the Debug skill, reproduce the error, press Copy on the Debug output, and paste the text so I can analyze the exact error lines. (I can’t view attached images - paste text.)

Would you like me to:

  • Tune the wrapper (longer timeouts, different backoff), or
  • Create a version that queues failed requests to disk and retries later?

Tell me which you'd prefer and the behavior you want on failure (speak a message, queue, or skip).


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
#4  

I'd also take a good look at your network or router configuration. As Athena said, that is the PC not being able to resolve the words "admin.synthiam.com" to the IP address, which is how the internet works. Think of DNS like a phone book of names and numbers. We, humans, like to use names to remember things, but computers use numbers. The DNS converts names into numbers so computers can connect.

In the case above, your computer is unable to talk to a DNS server. The DNS server, in your situation, would be either

  1. configured manually by yourself (overriding the default that your ISP assigned)
  2. configured manually by your network admin (if in a business of some sort)
  3. assigned by your ISP in the modem/router

A few tips...

  1. If your computer is connecting to the internet router via WiFI, I would recommend throwing an Ethernet connection directly to the router.
  2. If your computer is already connected to the router via Ethernet, maybe the Ethernet cable is damaged.
  3. Look for the Killer Network or Killer Wifi installed on your computer and remove it. That is known to cause issues with network connectivity.

Athena might have other suggestions to debug your network for stability. You may not have noticed it much browsing, but your robot certainly has:D

Author Avatar
PRO
Canada
#5  

Good additional points from Synthiam_Support - that error is a DNS/name-resolution problem on the PC (not ARC itself). Below is a compact, actionable checklist you can follow now, with both OS-level diagnostics and an ARC script you can run. I also explain how to change DNS and the exact things to paste back here so I can help further.

Quick summary

  • The error means your PC could not resolve admin.synthiam.com to an IP address (DNS lookup failure).
  • Common causes: ISP/router DNS problems, local DNS override (hosts file), VPN/proxy/firewall, captive portal, corporate network filtering, bad Ethernet/WiFi or cable.
  • Fixes usually: switch to a public DNS (1.1.1.1 or 8.8.8.8), flush DNS cache, disable VPN/proxy, try Ethernet, or have network admin whitelist synthiam.com/admin.synthiam.com on port 443.

Step-by-step checks (in this order)

  1. Basic browser test
  1. Quick ARC checks
  • In ARC script editor run these JavaScript tests (copy/paste into a JS script and Run):
// ARC diagnostic checks (print results)
print("Net.isInternetAvailable() => " + Net.isInternetAvailable());

try {
  var r1 = Net.hTTPGet("https://synthiam.com";, 5000);
  print("synthiam.com reachable, length: " + (r1 ? r1.length : 0));
} catch (e) {
  print("synthiam.com HTTP GET failed: " + e);
}

try {
  var r2 = Net.hTTPGet("https://admin.synthiam.com";, 5000);
  print("admin.synthiam.com reachable, length: " + (r2 ? r2.length : 0));
} catch (e) {
  print("admin.synthiam.com HTTP GET failed: " + e);
}
  • Paste the printed output here.
  1. Windows network diagnostics (run in Command Prompt as normal user)
  • Open Command Prompt and run these commands. Copy/paste their full outputs here.
  1. Flush DNS and check network config:
  • ipconfig /flushdns
  • ipconfig /all
  1. DNS resolution tests:
  • nslookup admin.synthiam.com (If Windows 10/11 and you prefer PowerShell: Resolve-DnsName admin.synthiam.com)
  1. Path test to server:
  • tracert admin.synthiam.com (or: tracert synthiam.com - tracert may stop early if DNS fails)
  1. Quick ping (note: some hosts block ICMP, ping may not reply):
  • ping admin.synthiam.com
  1. If you are on a managed network, check:
  • Are you connected via VPN or using a proxy? (Control Panel Internet Options Connections LAN settings; Windows Settings Network & internet Proxy)
  • Is this a school/work network or home?
  • If on WiFi, try a direct Ethernet connection to the router. If already on Ethernet, try another cable / port.

How to set a public DNS on Windows (temporary quick fix)

  • Settings Network & internet Change adapter options right-click adapter Properties Internet Protocol Version 4 (TCP/IPv4) Properties Use the following DNS server addresses:
    • Preferred DNS: 1.1.1.1
    • Alternate DNS: 8.8.8.8
  • Save and then run ipconfig /flushdns and test again.

Check hosts file (rare but possible override)

  • Open C:\Windows\System32\drivers\etc\hosts with Notepad (run Notepad as Administrator) and ensure there are no entries for synthiam.com or admin.synthiam.com. If there are, remove them and save.

Router-level suggestions

  • Power-cycle the router/modem.
  • If the router has a custom DNS setting, change it to 1.1.1.1 / 8.8.8.8 or set the router to "Obtain DNS automatically".
  • If you’re on a corporate/school network, ask IT if DNS is filtered or whether outgoing HTTPS to synthiam.com/admin.synthiam.com is blocked.

Firewall / AV / DPI / SSL inspection

  • Some corporate firewalls or "SSL inspection" devices break HTTPS hostname resolution or certificate chains.
  • Temporarily disable local firewall/AV (only if safe) to test.
  • If your network uses an authenticated proxy, configure the system proxy or disable it.

ARC / OpenAI ChatGPT skill checks

  • Open the OpenAI ChatGPT robot skill settings via the kebab menu (three lines) on that skill’s window:
    • Verify API Key is set correctly.
    • Leave Base Domain blank unless using a local/compatible OpenAI server.
    • Confirm the model is valid.
  • If admin.synthiam.com is blocked, the skill may fail for licensing/relay - that domain must be reachable (HTTPS port 443). ARC Internet requirements: https://synthiam.com/Support/Install/Internet-Access-Requirements

Collecting logs (Debug skill)

  • Add Debug to your project (Project Add robot skill General Debug).
  • Reproduce the error, then in Debug click Copy and paste that text here. (I can’t view images; paste text.)

Advanced diagnostics to run and paste here

  • Output of: nslookup admin.synthiam.com
  • Output of: tracert admin.synthiam.com
  • Output of ARC JS diagnostic script above
  • Debug skill log text

Immediate quick fixes to try now

  • Disable VPN / proxy (if any).
  • Change PC DNS to 1.1.1.1 / 8.8.8.8 and ipconfig /flushdns.
  • Try different network (phone hotspot) - if it works on hotspot, the home/office network is the issue.
  • Try Ethernet instead of WiFi.

If changing DNS solves it

  • Leave DNS set to 1.1.1.1 / 8.8.8.8 or set it on the router so all devices use it. If you need to revert, set to automatic/ISP DNS.

If the diagnostics show DNS server addresses but nslookup fails

  • DNS server itself (router/ISP) may be broken or blocked. Try nslookup specifying public DNS:
    • nslookup admin.synthiam.com 1.1.1.1

Want me to prepare an ARC script that:

  • runs these checks automatically,
  • sets a global variable like $NetworkStatus and $LastNetworkError, and
  • optionally retries ChatGPT calls with backoff?

Tell me:

  1. Are you on a home or managed (school/corporate) network?
  2. Are you using a VPN or proxy?
  3. Paste the outputs of the ARC JS diagnostic and nslookup/tracert as described above and I’ll analyze them and give the exact next step.

I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.