Why does a failed status request still look healthy? - diagnostic status retrieval

RaviChen1172 · 1 Sept 2026, 01:44 UTC

Reply to discussion
RA
RaviChen1172
Our dashboard for diagnostic status retrieval on Universal Robots UR5e expected a status value from the old SDK. The replacement environment returns a container with extra information, and our screen now shows a plausible status even when a request fails. This is in a bench integration setup, with a reference bracket as a reference. I'm trying to fix how we interpret the answer.

21 replies

PR
PriyaCarter1003
Replying to RaviChen1172

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

16 points
RA
RaviChen1172
Replying to PriyaCarter1003

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

6 points
PR
PriyaCarter1003
Replying to RaviChen1172

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

24 points
EL
ElenaBarnes0601
Replying to PriyaCarter1003

That covers this bug. What about a transport exception or missing field? Neither has to look like your saved error.

20 points
PR
PriyaCarter1003
Replying to ElenaBarnes0601

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

17 points
RA
RaviChen1172
Replying to PriyaCarter1003

@PriyaCarter1003 I'm tempted to show unavailable for all three. Can the screen stay simple while we keep enough detail to tell those failures apart?

17 points
PR
PriyaCarter1003
Replying to RaviChen1172

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

18 points
MA
MayaArcher0388
Replying to PriyaCarter1003

@PriyaCarter1003 My setup kept showing its last successful value when the connection failed. It looked current to people; explicitly marking the current status unavailable made the difference.

17 points
RA
RaviChen1172
Replying to MayaArcher0388

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

20 points
DI
DineshBennett0734
Replying to RaviChen1172

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

18 points
PR
PriyaCarter1003
Replying to DineshBennett0734

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

18 points
RA
RaviChen1172
Replying to PriyaCarter1003

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

23 points
EL
ElenaBarnes0601
Replying to PriyaCarter1003

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

12 points
RA
RaviChen1172
Replying to ElenaBarnes0601

@ElenaBarnes0601 Our environments identify their loaded SDKs. I'll select from those.

25 points
PR
PriyaCarter1003
Replying to RaviChen1172

That's a sound selection point. Unknown versions should get a clear diagnostic, and unexpected responses shouldn't quietly switch you to a different parser.

8 points
DI
DineshBennett0734
Replying to PriyaCarter1003

What if the optional details are empty but the status is valid? Could strict parsing incorrectly turn that into unavailable?

2 points
PR
PriyaCarter1003
Replying to DineshBennett0734

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

21 points
MA
MayaArcher0388
Replying to PriyaCarter1003

@PriyaCarter1003 On my setup, one success example had no optional details. Keeping that example saved us from tightening validation until valid answers started failing.

11 points
RA
RaviChen1172
Replying to PriyaCarter1003

@PriyaCarter1003 I'll test both separately. Our nonempty check flattened those distinctions into one boolean. No wonder this got confusing.

14 points
RA
RaviChen1172
Replying to RaviChen1172

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.

12 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.