Summary: When developers or users run into a JSON error response, especially one involving something like an insufficient account balance, the first instinct is often to ask, “What’s the story here?” But the truth is, there is no story—just data. This distinction matters a great deal, especially if you’re trying to write documentation, guide a client, or troubleshoot a system. Wrapping technical information in a fictional narrative might feel convenient—but it muddies the waters. This post explains why a JSON error is not a story, what it actually communicates, and how to treat it with the clarity and logic it demands.
Not Every Text is a Story—And That’s a Good Thing
We’re hard-wired to find narratives in almost everything. That has its place in education and marketing. But when it comes to machine-generated responses, this tendency quickly becomes a liability. A JSON error response isn’t narrative-driven. It has a function: to report failure or status in a precise format.
This isn’t fiction. There are no protagonists or antagonists, no character development, no rising tension or climax. The point of a JSON error is not to entertain or even explain in human terms—it’s to deliver technical feedback cleanly and consistently.
The Anatomy of the Error Response
A typical JSON error message might look something like this:
{ "error": "Insufficient funds", "code": 402, "message": "Your account does not have enough balance to complete the transaction." }
Now, is there a so-called “story” in there? Objectively—no. What we see here is structured data: a key called error
with a short description, a numerical code used for programmatic handling, and a slightly longer message intended to provide user-friendly clarity.
There’s no timeline. No characters. No emotion unless one is projected onto it. In other words, trying to extract a story from this message is like trying to get music out of your car’s check engine light. It’s a signal, not a symphony.
Why Calling It a Story Is Dangerous
Misinterpreting technical logs or code responses as stories creates confusion. It blurs the line between operational accuracy and dramatic interpretation. Developers, marketers, and customer support reps need to stay objective when relaying these responses to users or clients.
Let’s say you’re debugging an application and someone says, “We need to rewrite this JSON error response into a better story.” What do they really mean by that? Are they asking for a cleaned-up message for better UX? That’s fair. But if they’re treating the error code like the start of a character arc, they’re losing focus.
This is where the biggest misalignment happens: assuming everything must entertain. That’s Hollywood thinking, not production-level thinking. And your users will feel the effects—slower response times, misleading documentation, and fragmented developer collaboration.
The Real Purpose: Machine-Human Communication
JSON is designed for structured, machine-readable communication. Its simplicity is its strength. Trying to make it behave like a narrative structure defeats that purpose.
Take the “insufficient balance” message: it tells you one thing and one thing only—that a request failed due to a lack of funds. That message's clarity becomes crucial when you’re debugging a production environment, managing payment flows, or running automated tests.
Adding narrative elements introduces cognitive load. The more you explain with drama, the less room your reader has for precision. And there’s the risk they interpret tone, emotional signals, or intent that simply aren’t there.
Make the Error Human-Friendly, Not Human-Sounding
Let’s not get this wrong—better user experience matters. But better UX doesn’t mean turning everything into a Pixar short. The real win is translating technical clarity into human-accessible language without corrupting the original message.
Say you want to present the error to an end user. A rewrite like this might be effective:
“We couldn’t complete your payment because your account doesn’t have enough credit. Please check your balance or try a smaller amount.”
This doesn’t invent a story. It respects the origin data and just makes it human-consumable. You’re not adding characters, motivations, or dressing it up in comedy or tragedy. You’re staying true to the data while also remaining considerate of the user’s experience.
What This Teaches Us About Communication and Boundaries
Setting boundaries in communication is productive. Not everything needs to be reframed into a narrative. Saying "no" to storytelling in the context of structured data like JSON is a useful and constructive refusal.
It invites a better question: “What is the best way to convey this to our user without compromising the accuracy or functionality?” That’s a question that opens up useful discussion and leads to intelligent design decisions.
A Better Way Forward: Function over Drama
A structured error message doesn’t fail because it lacks emotional impact. It succeeds because it does its job. If your application returns consistent, easily parsable errors, developers will thank you. Support teams will save time. Customers won’t fall into confusion.
That’s not boring. That’s good design.
And if your impulse is to say, “But can’t we make it more engaging?”—try this instead: “How can we make it more understandable while keeping its structural integrity?” It’s a more useful question, and it leads to clearer outcomes.
Conclusion: JSON error responses are not stories—and that’s their greatest strength. They represent a contract between systems: a handshake of data passed across boundaries without confusion, emotion, or embellishment. Trying to read a narrative into that adds unnecessary weight and weakens the signal. Our job is to decode, translate if needed, and respect the difference between machines talking and people understanding.
#JSONErrors #ErrorHandling #SoftwareDesign #TechnicalWriting #StructuredData #UXWriting #ClearCommunication #APIDesign
Featured Image courtesy of Unsplash and Fernando Hernandez (pOmr_qQRgiU)