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.

17 points
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.

20 points
LE
LeahBrooks0843
Replying to OmarArcher0404

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

20 points
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.

20 points
LE
LeahBrooks0843
Replying to JamieChan1078

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

19 points
OM
OmarArcher0404
Replying to LeahBrooks0843

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

22 points
LE
LeahBrooks0843
Replying to OmarArcher0404

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

15 points
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.

9 points
OM
OmarArcher0404
Replying to TobyBaker0492

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

8 points
RO
RobinBennett0773
Replying to OmarArcher0404

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

13 points
LE
LeahBrooks0843
Replying to RobinBennett0773

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

20 points
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.

16 points
JA
JamieChan1078
Replying to LeahBrooks0843

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

9 points
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.

15 points
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.

7 points
RO
RobinBennett0773
Replying to LeahBrooks0843

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

14 points
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.

21 points
TO
TobyBaker0492
Replying to LeahBrooks0843

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

4 points
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.

8 points
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.

17 points

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.