NewDash Dots are hereMini apps in Dash, with payments built inLearn more

Products · USSD Flows

Troubleshooting & FAQ

Fixes for common USSD flow problems, and answers to frequent questions.

Common Issues

"Invalid JSON" in the Editor

The flow has a JSON mistake, such as a missing comma or bracket, or it breaks a flow rule, such as a missing field or a misspelt one. Hover over each red line to see what's wrong.

Common causes:

  • A component without a type.
  • A type that isn't one of the six page types: prompt, menu, display, dynamic, template or side_effect.
  • A misspelt field, such as lable for label.

If the message mentions "unevaluated properties", a field isn't allowed on that page type. Check the Flow Definition.

The Draft Isn't Saving

The editor doesn't save while the status reads "Invalid JSON". Fix the red lines first. If it reads "Unsaved", the editor saves 5 seconds after you stop typing, or press Ctrl+S (Cmd+S on Mac). If you're looking at Published, switch to Draft: the live version is read-only.

Publish Is Greyed Out

Hover over Publish to see why. The messages are listed in Editing & Publishing.

"Publish Draft" Is Missing on the Flow's Page

It only shows when there is a saved draft. Publishing clears the draft, so the button comes back after your next saved change.

"Action Required" in the Security Section

The flow calls your server but has no public key, so you can't publish it. Add a key as shown in Flow Security.

A Variable Shows Nothing

A Menu Shows No Options

For a fixed list, items must hold 1 to 16 entries, each with a value and a label.

For a list from your server, such as "$(data.districts)", the data must be a list of { value, label } entries by the time the menu shows. If your server hasn't sent it yet, the menu is empty.

Callers Keep Getting "Invalid Input"

The prompt's rules may be too strict.

  • For text, check min_length, max_length and pattern. Try the pattern with real answers.
  • For numbers, check min_value and max_value.
  • Set max_invalid_input_attempts to about 3, so one typo doesn't end the session.

My Server Isn't Called

Check that the page has an on_done with "action": "exchange" and a full url that can be reached over the internet. Without it, the flow moves to the next page and doesn't call your server.

The Session Ends With an Error

Your server must reply with HTTP 200 within 10 seconds, with an encrypted reply. Any failure ends the caller's session with an error. See Security Troubleshooting for reply problems.


Frequently Asked Questions

Codes

Editing and Publishing

Screens

Building Flows

Contacting Support

If you're still stuck, especially if a published flow can't be reached, email Monime support with:

  • the flow ID and code
  • the flow JSON, if it matters
  • the error message
  • the steps that cause the problem

Keep reading