Summary: A technical error message, even when it contains no dramatic plot or characters, still deserves attention—especially when it reflects a broader challenge around software behavior, system limits, customer disappointment, or unmet expectations. What appears to be a simple JSON snippet about an insufficient account balance opens the door to a larger conversation: what expectations do users bring to platforms, and how can clear communication and smart system design reduce friction, especially when money is involved?
What Was Actually Received
The original text was a straight-up JSON response. It stated that a query couldn’t run due to an insufficient account balance. No bells or whistles. Plain system speak. Here’s the rub: someone asked whether it could be turned into a narrative. That request failed because there simply wasn’t a story—just a statement of error and action required.
But let’s not walk past that too quickly. Why was there an impulse to turn a dull system warning into a story? Because people crave emotion, resolution, and meaning. And when software doesn’t provide it, users stumble. This brings up a hard truth: technical interfaces often do a terrible job addressing human behavior.
What Makes a “Story” in Communication?
A story needs tension, context, decisions, consequences, and usually, a protagonist. A JSON error like:
{ "error": { "message": "Insufficient funds to run query. Please recharge your account." } }
…lacks all of these. There’s no conflict arc, no consequence beyond a stop sign, and certainly no protagonist the user can relate to. There’s action the user must take—the account must be recharged—but there’s no emotional landscape. No frustration acknowledged, no context given. It’s flatline communication. Mechanical. Soulless.
Why That Matters
Ignore emotional resonance in systems and you get friction. Missed expectations. Support tickets. Customer churn. Want to reduce user confusion, delays, and escalation? Build better system messages that answer three questions clearly:
- What happened? – not just “error,” but also what caused it.
- Why does it matter? – connect the issue to the user’s goal.
- What now? – give a clear, fast path forward.
None of that requires storytelling with plot twists. But it does require story structure. A short, clear arc: Situation → Conflict → Resolution Path. That’s not fiction. That’s just good systems communication.
What Happens When You Don’t Do That
Imagine a user running a critical query, right before a deadline, and this silent rejection appears. No help, no context, just “recharge your account.” What emotion does that message acknowledge? None. But the user is likely feeling confused or frustrated. Possibly even tricked.
Want to prevent that? Say something like: “Your query was paused because your current balance (€0.00) is too low to cover this request. Queries usually cost between €5 and €15 to process. Please recharge your account to continue.” That explains the what, gives scale to the problem, and offers a way out. Now the user has context, control, and clarity. That reduces fear—and friction.
There’s Power in Admitting “No Story”
When asked to draw up a story from this kind of snippet, you’d be right to say, “There’s no story here.” But that answer carries power if you use it to say why the story’s missing and how to fix that gap. What if tech platforms saw every interaction as a conversation instead of a command output? What if each error message reflected just a bit more humanity?
That doesn’t take expense. It takes mindset. That’s where persuasion meets UX—because systems that feel human get better adoption, longer retention, and more trust. And trust is measurable in revenue.
What Can Developers and Product Owners Learn From This?
Here’s a practical takeaway: Audit your top 25 error messages. One by one, ask:
- Does this explain the problem in plain terms?
- Does it acknowledge the user’s likely state (confused, frustrated, rushed)?
- Does it offer a clear, fast path forward?
If not, rewrite it. You’re not adding fluff. You’re creating precision. Give value in your system messages, and users reciprocate with faith in the platform. That’s Cialdini common sense, not fiction.
Conclusion: No Story = Missed Opportunity
That JSON response did its job. But it didn’t do a good job. And it sure didn’t do a persuasive job. There’s no shame in being technical, but technical communication without empathy is just friction waiting to happen. The next time your system has something to say, make sure it says it like a partner—not like a machine that just spit out code.
#UXWriting #SystemDesign #ErrorMessaging #HumanCenteredDesign #ProductMarketing #EngineeringCommunication
Featured Image courtesy of Unsplash and Christopher Gower (m_HRfLhgABo)