Human review required (metadata-snap-v2_snap_metadata_redflag) Astonischika und jsMahjong

Hi store team,

four snaps of our account (publisher `budbrain`, Budbrain Software) are sitting
in manual review. Every upload comes back with

> human review required due to detection of potentially harmful contents in snap metadata
> (`metadata-snap-v2_snap_metadata_redflag`)

**What these snaps are.** All of them are single-player desktop games written in
C++ with SDL2 — a pixel-art party RPG and a mahjong solitaire. They run offline;
there is no user account, no download, no user-generated content and nothing that
is fetched at runtime.

**What they ask for.** `base: core24`, `confinement: strict`, `grade: stable`,
the `gnome` extension, and these plugs only:

```
audio-playback, opengl, wayland, x11, desktop, desktop-legacy
```

No `home`, no `network`, no interface that would need an assertion. Saves and
settings live in the snap's own data directory.

**Local review is clean.** `review-tools` 0.48 (snap `review-tools`, rev 4865)
on the exact files that were uploaded:
astonischika_1.0.0_amd64.snap: pass
jsmahjong_1.1.0-2_amd64.snap: pass
**What we are asking for.**

1. Please review and let through `astonischika` rev 1 and `jsmahjong`
3. If future revisions of these names will keep hitting the same flag, a note
   saying so would help — we would rather not open a thread per release.

Thanks for having a look.

Hi there, our system automatically flags revisions for manual review if any red flags are detected. These seem to be false positives in this case, and I’ve manually approved rev 1 for astonischika and rev 2 for jsmahjong (rev 1 was rejected by yourself). You can expect this to occur on every revision, given the content remains more or less the same.

Thank you for the manual approval, and for the note that this will recur on every revision — that is good to know.

Both approved revisions are on stable now, but neither snap can actually be installed, because the visibility is still locked to Private.

Verified today:

snap snapcraft revisions Settings page api.snapcraft.io
astonischika rev 1 on latest/stable*, and it is the only revision Status: Published, all three Visibility radios greyed out resource-not-found
jsmahjong rev 2 on latest/stable* Status: Published, all three Visibility radios greyed out resource-not-found

Both Settings pages show the same banner above the greyed-out radios:

Your Snap is in the queue for manual review. When approved, you will receive an email, and you will be able to change the visibility of your Snap.

For astonischika there is no other revision this banner could refer to — rev 1 is the only one ever uploaded, and it is the one you approved. No approval email has arrived for either snap.

So it looks like the package revisions were let through while the listing metadata is still held in the queue — which would match the flag name (metadata-snap-v2_snap_metadata_redflag). Could you release the metadata side as well for both snaps, so we can set the visibility to Public?

Hi, thanks for pointing that out! I’ve unlocked visibility for you and you should now be able to toggle the visibility.

Thank you for unlocking the visibility!

astonischika is public now. jsmahjong still cannot be switched, and the reason seems to be on the metadata side again.

What happens. Selecting Public on the Settings page and pressing Save returns:

Changes have not been saved. The ‘description’ field cannot contain control or private unicode characters.

The stored description of jsmahjong contains 28 carriage returns (U+000D, one at every line end). They are not visible in the Listing editor, and we did not type them. Read back through the dashboard API (/dev/api/snaps/info/jsmahjong): 1070 characters, 28 \r, nothing else unusual.

What we tried. We replaced the description on the Listing page with a new, shorter plain-ASCII text. The page reports it as saved, but every attempt comes back by mail as

Metadata Updates Rejected for Snap “jsmahjong” - rejected as they were found to be in violation of the Store terms of service

(22 Sep 2026, 05:42, 05:44, 05:47 and 05:49 UTC, and once more afterwards with the contact line removed). The stored description stays the old one, so the visibility change keeps failing.

The same happened to astonischika this morning: the old wording without the carriage returns was rejected several times, a newly written text was approved at 05:38 UTC, and after that the snap could be made public. For jsmahjong even the new text is rejected.

Could you please either approve the text below for jsmahjong, or remove the carriage returns from the current description, so the visibility can be set to Public? If something in the text really breaks the terms of service, a hint which part would help us fix it.

The relaxing tile game: find two matching tiles and clear the board.

A hundred levels, from a small first pile to the full classic game. Every board can be solved, so you never get stuck.

  - 100 levels with growing piles
  - Beautiful hand-drawn tables
  - Hints and undo whenever you need them
  - Collect stars on every level
  - Play with mouse or keyboard

Available in 22 languages.

Developed by Vera and Josef Sejrek / Budbrain Software
Contact: mahjong@budbrain.de

Thanks again for your help.

Hi there, this is a bug on our side, and while we fix it, the easiest solution is to update the metadata to be strictly ASCII. Usually publishers can update this themselves, but since this snap triggers manual reviews, you’re unable to.

I can help with that, but I took a look at the text you’ve asked us to update the description to and it still contains non-ASCII characters. Please provide an ASCII-only description.

Thank you, that explains it.

The text in my previous post is plain ASCII, as far as I can check: I read it back from this forum (/raw/53150/5) and it is 476 bytes, every byte is either a line feed (0x0A) or in the printable range 0x20-0x7E. No carriage return, no tab, no non-breaking space, no typographic quotes or dashes.

My guess is that you looked at the version pending in the dashboard. That one was typed into the Listing editor, and a browser form sends every line break as CR LF - so it carries the same carriage returns (0x0D) as the stored description, even though the visible characters are all ASCII.

So please take the text from this post, not from the pending dashboard update. Here it is again, same bytes, line feeds only:

The relaxing tile game: find two matching tiles and clear the board.

A hundred levels, from a small first pile to the full classic game. Every board can be solved, so you never get stuck.

  - 100 levels with growing piles
  - Beautiful hand-drawn tables
  - Hints and undo whenever you need them
  - Collect stars on every level
  - Play with mouse or keyboard

Available in 22 languages.

Developed by Vera and Josef Sejrek / Budbrain Software
Contact: mahjong@budbrain.de

If a character in there still shows up as non-ASCII on your side, could you tell me which one (or its position)? Then I will replace it right away.

Thanks a lot for your help.

Hi there, something seems to still be tripping the description error on our side. To unblock you, I’ve manually made your snap public, while we file this bug on our side. Thanks!

1 Like

Thanks a lot! The settings page shows Public/Published, but snap find jsmahjong and api.snapcraft.io/v2/snaps/info/jsmahjong still return “not found” a few hours later. Is anything else needed on my side?

Hi, had to do one additional thing. It’s now searchable. Thanks!

2 Likes