My Universal Robots UR5e dashboard believes an error response

OmarArcher0404 · 12 Aug 2026, 17:36 UTC

Reply to discussion
OM
OmarArcher0404
I'm fixing our controller availability reporting dashboard for Universal Robots UR5e in a maintenance area comparing software environments. Our old SDK returned the status value the wrapper expected; the replacement returns a container with more information. Failed requests can now look like plausible status readings. We use an inspection coupon as a reference, but the problem is interpreting the response.

21 replies

LE
LeahBrooks0843
Replying to OmarArcher0404

Got sanitized success and failure examples? Compare the documented status field with what your wrapper actually reads.

17points
OM
OmarArcher0404
Replying to LeahBrooks0843

@LeahBrooks0843 Found it. We're checking whether the outer container is nonempty. Our error response passes without containing a valid status. Brilliant.

20points
LE
LeahBrooks0843
Replying to OmarArcher0404

Replay both offline with a version-specific parser. Failure should return unavailable. That pair should cover the adapter.

20points
JA
JamieChan1078
Replying to LeahBrooks0843

Two examples establish the reported bug, but they don't cover an adapter. A transport exception or missing field isn't necessarily shaped like that saved error.

20points
LE
LeahBrooks0843
Replying to JamieChan1078

Fair point; I overstated coverage. Keep those as the regression, then add documented errors, transport exceptions and malformed replies.

19points
OM
OmarArcher0404
Replying to LeahBrooks0843

@LeahBrooks0843 Can our screen just say unavailable, but retain the reason?

22points
LE
LeahBrooks0843
Replying to OmarArcher0404

@OmarArcher0404 Yes. One unavailable display state, distinct reasons in the result.

15points
TO
TobyBaker0492
Replying to LeahBrooks0843

My screen kept the last good value after disconnect. People read it as current until we added an explicit unavailable label.

9points
OM
OmarArcher0404
Replying to TobyBaker0492

Ours does that too. No old-observation label. Fixing the parser would still leave that misleading value sitting there.

8points
RO
RobinBennett0773
Replying to OmarArcher0404

Why keep it? Wouldn't clearing an old mode be less confusing?

13points
LE
LeahBrooks0843
Replying to RobinBennett0773

Clearing it's fine. Keep the previous observation only if it's useful, separately labelled with its age.

20points
OM
OmarArcher0404
Replying to LeahBrooks0843

@LeahBrooks0843 I'll use unavailable in our main field. Previous observations can sit in labelled diagnostic detail; that's clearer here.

16points
JA
JamieChan1078
Replying to LeahBrooks0843

@LeahBrooks0843 How do you select the parser? Guessing from reply shape brings the same mistake back.

9points
OM
OmarArcher0404
Replying to JamieChan1078

Both of our environments identify the SDK they load. That gives me an explicit selection input instead of guessing from a response.

15points
LE
LeahBrooks0843
Replying to OmarArcher0404

@OmarArcher0404 Use those IDs. Reject unknown versions clearly, and don't switch parsers just because an unexpected reply resembles another supported format.

7points
RO
RobinBennett0773
Replying to LeahBrooks0843

Empty optional details, valid status. Would strict parsing reject that too?

14points
LE
LeahBrooks0843
Replying to RobinBennett0773

@RobinBennett0773 Optional can be absent where the contract allows. Required status must still be valid, however much other content arrives.

21points
TO
TobyBaker0492
Replying to LeahBrooks0843

@LeahBrooks0843 My success fixture had empty optional details. Keeping it stopped us tightening validation until perfectly valid answers failed.

4points
OM
OmarArcher0404
Replying to LeahBrooks0843

@LeahBrooks0843 Those will be separate cases in my replay. The old nonempty check flattened both questions into one boolean, which explains quite a lot.

8points
OM
OmarArcher0404
Replying to OmarArcher0404

I've got an answer to the design question: parse the documented status for the identified SDK and keep failures unavailable. I'll call the display fix complete only when our offline examples show that behaviour on screen.

17points

Add to the discussion

Welcome to Application Robot

Everyone can read the forum. Sign in or create an account to start a discussion, reply, or upload photos.

Forgot your password?

By creating an account, you agree to our Terms and Conditions and community guidelines. Read our Privacy Policy for how your information is handled.