Changed SDK on the training dashboard. Old wrapper expected a value. New response is a container, and failed calls can show a plausible mode. Read-only display, but people use it. Need to sort the response meaning before I trust anything else on that screen.
What did a failed call actually return? Keep that beside one successful response from the same version. Container shape alone won't tell you which field carries success.
Failure capture has an error field plus data in the place we read as mode. Success capture also has both fields. Wrapper goes straight for data without checking the error.
Can you feed those captured replies back through the wrapper on a laptop? I wouldn't drag the robot into every parser check. It has done enough unpaid acting for the dashboard.
Do you still need to support the old SDK? I'd keep its interpretation separate if its response contract is different. Guessing the version from whatever fields arrive sounds fragile.
Only new SDK required here. Wrapper now checks its documented result, structure and known modes. Saved success, failure, malformed and unknown-mode examples display correctly. Dashboard updated; failed reads show unavailable.