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.

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

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

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

-1points
LU
LuisAbbott0086
Replying to ClaraBennett0698

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

13points
AD
AdaBaker0477
Replying to LuisAbbott0086

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

5points
LU
LuisAbbott0086
Replying to AdaBaker0477

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

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

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

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

7points
LU
LuisAbbott0086
Replying to ChenAllen0268

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

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

3points
CL
ClaraBennett0698
Replying to LuisAbbott0086

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

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

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

7points
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?

11points
LU
LuisAbbott0086
Replying to ChenAllen0268

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

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

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

2points
LU
LuisAbbott0086
Replying to AdaBaker0477

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

11points

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.