Happ error “JSON (or array) configuration is not valid”

The app identified the data as JSON and then failed to use it. Two different things cause this: the JSON is broken as text, or it is intact but does not describe what the app expects to find.

Test with a working subscription

Two different failures, one message

Broken as text

A truncated file, a stray character pasted in, one of those “smart” quotation marks a document editor substitutes automatically, or the tail of the file missing because the copy stopped early. Any of these makes the data unparseable before its meaning is even considered.

Intact but not what the app expects

The JSON parses fine and describes something else — a configuration exported from a different client, a fragment of one, or a settings file that happens to be JSON. The app is strict here on purpose: guessing at half-recognised structures would produce connections that fail later for reasons nobody could diagnose.

How to tell which one you have

Paste the text into any JSON validator. If it complains, the file is damaged and you need a clean copy from the source — repairing it by hand tends to produce a file that parses but still does not work.

If the validator is happy, the problem is structural. That is not something you can fix on your side; ask whoever issued the configuration for a version intended for this app, or for a subscription link instead.

Why a subscription is usually the better ask

A JSON configuration is a snapshot. It records the servers as they were at the moment it was written, and it never changes afterwards. When the provider rotates servers, your copy quietly stops matching reality.

A subscription link is an address the app re-fetches, so the same rotation happens without you touching anything. If your provider offers both, the link is less work in every respect.

If the wording you are seeing does not match this page exactly, check it against the list of messages — the eight are similar in tone and easy to mix up.

Quick answers

Frequently asked questions

The file opens fine in an editor. Why is it invalid?

Valid JSON and usable configuration are different bars. An editor only checks the syntax; the app also needs the specific structure it works with.

Can I write one myself?

You can, but the structure has to match what the app expects, so a config assembled from another client's documentation will usually be rejected.

Is a JSON configuration better than a subscription link?

It is not better or worse, just more manual. A subscription updates itself; a JSON file stays exactly as it was when you imported it.

Quick actions Test with a working subscription

Trial access: in Telegram or in the web cabinet.