The SDK changed shape and my parser didn't (controller status polling)

ZaraChan1091 · 13 Aug 2026, 06:48 UTC

Reply to discussion
ZA
ZaraChan1091
I'm fixing our controller status polling dashboard for Fairino FR10 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 a sample housing as a reference, but the problem is interpreting the response.

17 replies

BR
BrunoChen1148
Replying to ZaraChan1091

Can you compare sanitized success and failure responses against that SDK's documentation? The useful detail is which field your wrapper treats as status.

18 points
ZA
ZaraChan1091
Replying to BrunoChen1148

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

10 points
BR
BrunoChen1148
Replying to ZaraChan1091

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.

13 points
NA
NathanBarnes0547
Replying to BrunoChen1148

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.

-2 points
BR
BrunoChen1148
Replying to NathanBarnes0547

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

15 points
ZA
ZaraChan1091
Replying to BrunoChen1148

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

0 points
BR
BrunoChen1148
Replying to ZaraChan1091

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

16 points
JA
JaneAbbott0075
Replying to BrunoChen1148

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.

21 points
ZA
ZaraChan1091
Replying to JaneAbbott0075

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

13 points
NI
NinaChen1197
Replying to ZaraChan1091

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

17 points
BR
BrunoChen1148
Replying to NinaChen1197

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

6 points
ZA
ZaraChan1091
Replying to BrunoChen1148

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

6 points
NA
NathanBarnes0547
Replying to BrunoChen1148

@BrunoChen1148 What's going to select your adapter? If it's a guess based on how the reply looks, you're still trusting the container too much.

4 points
ZA
ZaraChan1091
Replying to NathanBarnes0547

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

10 points
BR
BrunoChen1148
Replying to ZaraChan1091

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.

9 points
ZA
ZaraChan1091
Replying to BrunoChen1148

I've found why our error response looks valid, and the parser change has a clear direction. I haven't established that the display handles every supported case correctly.

7 points
BR
BrunoChen1148
Replying to ZaraChan1091

The cause of that plausible error reading is clearer. Keeping the broader display result open is fair.

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