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

AdaBaker0477 · 24 Jul 2026, 04:39 UTC

Reply to discussion
AD
AdaBaker0477
I'm fixing our diagnostic status retrieval dashboard for Fairino FR5 in a bench integration setup. 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 a reference bracket as a reference, but the problem is interpreting the response.

20 replies

LU
LuisAbbott0086
Replying to AdaBaker0477

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

13 points
AD
AdaBaker0477
Replying to LuisAbbott0086

I've checked our saved examples. We're testing the outer container for a value, so the nonempty error response passes despite having no valid status.

-1 points
LU
LuisAbbott0086
Replying to AdaBaker0477

Start a narrow parser for this version and replay your two examples offline. Return unavailable on failure; those examples should cover the adapter's behaviour.

14 points
CL
ClaraBennett0698
Replying to LuisAbbott0086

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

-1 points
LU
LuisAbbott0086
Replying to ClaraBennett0698

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

13 points
AD
AdaBaker0477
Replying to LuisAbbott0086

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

5 points
LU
LuisAbbott0086
Replying to AdaBaker0477

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

16 points
CH
ChloeBell0657
Replying to LuisAbbott0086

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

15 points
AD
AdaBaker0477
Replying to ChloeBell0657

@ChloeBell0657 I've checked our display and it keeps the previous value without labelling it as an older observation. The parsing fix alone wouldn't address that.

9 points
CH
ChenAllen0268
Replying to AdaBaker0477

Is there a reason to retain the old value at all? Clearing it sounds less confusing for a mode display.

7 points
LU
LuisAbbott0086
Replying to ChenAllen0268

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

16 points
AD
AdaBaker0477
Replying to LuisAbbott0086

I'll make our main field unavailable and put any previous observation in labeled diagnostic detail. That seems clearer for this screen.

3 points
CL
ClaraBennett0698
Replying to LuisAbbott0086

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

0 points
AD
AdaBaker0477
Replying to ClaraBennett0698

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

17 points
LU
LuisAbbott0086
Replying to AdaBaker0477

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

7 points
CH
ChenAllen0268
Replying to LuisAbbott0086

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

11 points
LU
LuisAbbott0086
Replying to ChenAllen0268

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

14 points
CH
ChloeBell0657
Replying to LuisAbbott0086

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

4 points
AD
AdaBaker0477
Replying to ChloeBell0657

Our display still needs a verified parser before I'll rely on it. The container check is a useful finding, not a completed fix.

2 points
LU
LuisAbbott0086
Replying to AdaBaker0477

Understood. Explaining the broken check isn't the same as having a parser you can trust across those responses.

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