KaitoBotLab
Getrss 403 And Empty Arrays On Six
Running a Six Hexapod (EZ-B v4 over WiFi in client mode) from ARC on Windows, I added the GetRSS robot skill to have Six read a few headlines while doing a small Auto Position animation; I’m triggering the control with a script, then checking $RSSSuccess and, if true, speaking the first three $RSSTitles, but I’m seeing inconsistent results depending on the feed and sometimes timing issues where the arrays aren’t populated yet. For example, https://feeds.npr.org/1001/rss.xml usually works and fills $RSSTitles/$RSSDescriptions as expected, but https://feeds.bbci.co.uk/news/rss.xml fails immediately with $RSSSuccess=0 and $RSSErrorMsg="The remote server returned an error: (403) Forbidden", and https://w1.weather.gov/xml/current_obs/KSEA.rss sometimes throws $RSSErrorMsg about "Could not create SSL/TLS secure channel"; I’ve tried http vs https where available, multiple networks, disabling Windows firewall, moving the GetRSS skill up in the project, validating the feeds (they’re valid RSS, not Atom), and adding a Sleep after sending the ControlCommand, but even when $RSSSuccess flips to 1 the arrays can occasionally still be empty if read too soon, which makes Six either say nothing or speak the previous feed’s data. Is there a way to set or override the User-Agent/TLS settings that GetRSS uses to avoid 403/TLS errors, and what is the recommended pattern in ARC (EZ-Script or JavaScript) to deterministically wait until $RSSTitles/$RSSDescriptions are populated before using them?
Related Hardware (view all EZB hardware)
Related Robot Skill (view all robot skills)

Yes - what you’re seeing is consistent with feed-side restrictions plus a bit of async timing in ARC.
Why this happens
1)
403 ForbiddenSome RSS providers block requests that look like generic bot traffic or require a browser-like User-Agent header. If GetRSS doesn’t send a UA the server likes, you can get
403even though the feed is valid.2) TLS / secure channel error
That usually means the feed’s HTTPS setup requires a TLS version/cipher that your current Windows/.NET environment isn’t negotiating successfully.
3) Empty arrays / stale data
ControlCommand("GetRSS", "get", ...)starts the request, but the population of:$RSSSuccess$RSSErrorMsg$RSSTitles$RSSDescriptions$RSSLinks$RSSDateshappens after the request completes. If you read them too soon, you can catch the previous values or an empty state.
Can you override User-Agent or TLS in GetRSS?
Not directly in the GetRSS skill UI.
There isn’t a built-in setting in the skill to customize the request headers or TLS behavior.
Practical options
If you want that route, ARC supports creating custom robot skills here:
https://synthiam.com/Support/Create-Robot-Skill/Overview
Recommended ARC pattern: wait for completion, then validate array data
The safest approach is:
$RSSSuccessis no longer-1/unset and the skill has finishedSince ARC scripting is synchronous, a simple
sleep()loop is usually the most reliable.JavaScript example
Even better: use an explicit "data ready" check
Because some feeds may succeed but still return no usable items, check both:
$RSSSuccess == 1$RSSTitles[0] != ""That prevents speaking stale or empty results.
If you want to avoid stale previous values
Before requesting a new feed, clear or overwrite your own tracking variable, for example:
Then set your flag only when the arrays are populated.
Why
bbc.co.ukis failingBBC and some government/weather sources often add:
So this is usually feed-policy related, not a Six or WiFi issue.
Best recommendation for your use case
For Six doing a small animation while reading headlines, I’d suggest:
$RSSTitles[0]existsIf you need more control
If your goal is to reliably pull feeds with custom headers, I’d strongly consider a small custom robot skill or a tiny local web service that ARC calls. That gives you control over:
And if you’re already writing script logic, the ARC AI Assistant can be handy for rewriting the wait logic or converting your current EZ-Script into JavaScript directly inside ARC:
https://synthiam.com/Products/AI-Assistant
If you want, I can help you write a robust JavaScript helper for ARC that: