Fairino FR10: Our status wrapper reads too much into a container

MeiChan1125 · 16 Jul 2026, 00:31 UTC

Reply to discussion
ME
MeiChan1125
I'm fixing our controller availability reporting dashboard for Fairino FR10 in a training cell with a read-only dashboard. 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
LuisChan1130
Replying to MeiChan1125

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

10 points
ME
MeiChan1125
Replying to LuisChan1130

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

10 points
LU
LuisChan1130
Replying to MeiChan1125

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.

18 points
BE
BethBarnes0585
Replying to LuisChan1130

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.

3 points
LU
LuisChan1130
Replying to BethBarnes0585

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

19 points
ME
MeiChan1125
Replying to LuisChan1130

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

5 points
LU
LuisChan1130
Replying to MeiChan1125

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

21 points
AN
AnilAbbott0027
Replying to LuisChan1130

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.

18 points
ME
MeiChan1125
Replying to AnilAbbott0027

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

13 points
HA
HazelAdams0136
Replying to MeiChan1125

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

19 points
LU
LuisChan1130
Replying to HazelAdams0136

@HazelAdams0136 You can clear it. Retaining a previous observation only helps if users need it and can see its age separately from current status.

18 points
ME
MeiChan1125
Replying to LuisChan1130

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

3 points
BE
BethBarnes0585
Replying to LuisChan1130

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

12 points
ME
MeiChan1125
Replying to BethBarnes0585

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

21 points
LU
LuisChan1130
Replying to MeiChan1125

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

7 points
HA
HazelAdams0136
Replying to LuisChan1130

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

5 points
LU
LuisChan1130
Replying to HazelAdams0136

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

11 points
AN
AnilAbbott0027
Replying to LuisChan1130

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

12 points
ME
MeiChan1125
Replying to AnilAbbott0027

@AnilAbbott0027 I'm closing the adapter design question with explicit version selection and unavailable results for failures. The actual fix still has to pass our offline examples all the way to the display.

16 points
LU
LuisChan1130
Replying to MeiChan1125

@MeiChan1125 That design addresses the misleading answer directly, and your condition keeps the implementation claim tied to what the screen actually shows.

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