Latest build Android 1.7.0 (10) · 12 Aug 2026 https://qa.techsoftwarevn.com/namuchat/apk/NamuChat-1.7.0-b10-arm64.apk Download APK

NamuChat Android · QA Handoff · Revision 3

Android Bug Fix Report

Covers the 15 Android findings from the second test round. Three are fixed with the cause confirmed, three should already be resolved by server work done since you tested, one is a large job now fully scoped — and six need something from you before we can act on them.

Updated 7 Aug 2026 Round 2 Platform Android only Tested Android 1.6.0 (9)
3Fixed — cause confirmed
3Re-test on the next build
6Blocked — need info from you
1Large job — scoped
2Out of scope by request

Download the test build


Android 1.7.0 (build 10). Pick ARM64 unless you know the device needs something else — it covers essentially every phone from the last several years.

Uninstall the existing app first

This build is signed with a test key. Installing it over a copy of NamuChat from the store will fail with a signature conflict. Remove the old app, then install this one.

Two behaviours that are intentional, not defects

  • The SMS code fills itself in. After 2–10 seconds the verification code appears on its own. That is a convenience in test builds only; the store build shows the code in a banner for you to type.
  • One-tap registration is hidden. The carrier credential is not configured in this build, so registration falls back to the SMS code flow.

Before anything else: the build numbering problem


We cannot tell which build you tested

Your report lists Android 1.6.0 (9). The build containing the previous round of fixes is also 1.6.0 (9) — the version number was never raised. So for several findings we genuinely cannot tell whether you were testing the fixed app or the old one.

The next Android build will be 1.7.0 (10). From then on every report can be tied to an exact build. Please always include the full version and build number — the value shown under Me → Settings → About, not just "latest".

Two findings were excluded at the client's request

The two Android "Push notification is missing when receiving a new message" entries are not being worked on. The client's requirement is that no messages be received while the app is closed, and current behaviour matches that. Please close them rather than re-testing.

We need this from you


Six findings cannot be acted on from the code alone. Each one below says exactly what would unblock it. Answering these is the fastest way to move the round forward.

Ask 01

Unable to register after entering username and password

Bug_008

Registration on Android needs more than a username and password. It also requires a phone number, an SMS code, and the consent checkbox — the Register button stays disabled until all of them are filled. That is intended behaviour, so we need to know which situation you hit.

  1. Did you fill in the phone number and SMS code as well, or only username and password?
  2. If you filled everything in: did the Get code button work, and did the code arrive?
  3. If the Register button was pressable but the attempt failed, what did the error say, word for word?
  4. A screen recording of the whole attempt would settle all three at once.
Ask 02

Voice message feature is not working

Unnumbered row

The microphone permission request and the recording code are both present, so "not working" could mean several different faults with different causes.

  1. Did the app ask for microphone permission the first time you tried?
  2. Does the button do nothing at all, or does recording start and then fail?
  3. If recording starts: does it fail while recording, when you release, or after sending?
  4. Does the failed message appear in the chat at all, or not appear?
Ask 03

Camera and video recording fail to work in chat

Unnumbered row

  1. Did the app ask for camera permission?
  2. Does the camera open at all? If it opens, does it fail when you take the shot or when it sends?
  3. Does picking an existing photo from the gallery work? That separates a camera problem from an upload problem.
  4. Device model and Android version, please — camera behaviour varies a lot between manufacturers.
Ask 04

Text is cut off · Image is cut off

Bug_002 and one unnumbered row

Layout clipping is impossible to locate without seeing it. The screenshots linked in the sheet are on prnt.sc and could not be opened from our side.

  1. Please attach the screenshots directly rather than as prnt.sc links.
  2. Tell us which screen each one is — chat, contacts, settings, moments.
  3. Include the device model, screen size and system font size. Clipping very often only appears at larger font settings.
  4. Does it also happen in English? Chinese text is more compact, so a layout that fits in Chinese can overflow in English or Vietnamese.
Ask 05

Friend requests do not appear

Bug_004

We believe this is a side effect of the sign-out fault described below — when several screens load at once and the session breaks, individual requests fail silently. That needs confirming rather than assuming.

  1. Please re-test on the next build first.
  2. If it still happens: does pull-to-refresh make the request appear?
  3. Does the recipient see it after fully closing and reopening the app?
  4. Does the sender see the request as sent successfully?
Ask 06

Scroll bar does not focus on the newest post

Unnumbered row · Moments

  1. Does this happen when opening Moments, or after posting something new?
  2. Where does it land instead — the top of the list, or wherever you last scrolled to?
  3. Same question for the chat screen: does it open at the newest message?

Fixed — cause confirmed


Both of these were reproduced and traced to a specific line. They are in the next build.

Bug_003 + Bug_007 Login screen on re-opening · user gets logged out on their own Fixed
Cause

A sign-in lasts 15 minutes before the app has to renew it, and the renewal ticket is single use — using it immediately invalidates it and issues a new one.

When you open the app, the home screen loads the chat list, contacts and unread counts at the same time. After 15 minutes all of them are refused at once, and each one independently tries to renew using the same ticket. The first succeeds and consumes it; the rest are refused — and being refused is what makes the app sign you out.

Verified
Session length      15 minutes
Renewal ticket      single use

Reusing a spent ticket:
  401 Invalid or expired refresh token

→ app treats this as "signed out"
Changed

Renewals are now serialised. Whichever request gets there first renews; the others wait, notice it has already been done, and carry on with the new session instead of trying again with a ticket that is already spent.

This is very likely also the cause of Bug_004 (friend requests not appearing) — that request would be one of the ones being silently refused.

How to verify
  1. Sign in, then leave the app closed for more than 15 minutes.
  2. Reopen it. You must land on your chat list, not the sign-in screen.
  3. Repeat after leaving it overnight.
  4. Use the app normally for half an hour and confirm you are never signed out mid-use.
Bug_005 Image displays with a green tint after uploading Fixed
Cause

The app was forcing every image into a reduced 16-bit colour format to save memory. That format gives green one more bit of precision than red or blue, so photographs — skin tones and gradients especially — pick up a visible green cast and banding.

The same setting also discards transparency, so PNG avatars and stickers were being filled in with black where they should have been see-through. Worth checking as part of the same pass.

Changed

The reduced format is now only used when the device is genuinely short of memory and the image has no transparency — which is what the optimisation was meant to do. Normal photos keep full colour.

How to verify
  1. Send a photo with skin tones or a sky gradient — colours must look correct.
  2. Compare against the same photo in your gallery, side by side.
  3. Check an avatar or sticker with a transparent background shows no black box.
  4. Check both the chat thread and the full-screen preview.

Re-test — already fixed on the server


These were fixed on the server after you ran this round, so they were genuinely broken when you filed them. No app change is needed — but they must be re-tested on the next build.

Calls Voice and video calls are not working Re-test
Cause

There was no relay server in production at all. A call could be created, but the audio and video had no route between the two phones. On mobile networks a direct connection almost never succeeds without one, so calls failed every time.

Worse, the app was being handed an address that pointed at the phone itself — so it was looking for the relay in the wrong place entirely.

Status

A managed relay service is now connected and verified. A second fault was fixed alongside it: starting a call, then immediately starting another in the same conversation, used to be refused — which is exactly what happens when you try voice, it fails, and you then try video.

How to verify
  1. Two real devices on mobile data, not office Wi-Fi — Wi-Fi can mask this fault.
  2. Place a voice call and confirm you can hear each other.
  3. Hang up, immediately place a video call. Both must connect.
  4. Try one call with the two devices on different networks (one Wi-Fi, one mobile).
Moments Image does not show up after a moment is posted Re-test
Cause

The image uploaded fine — it could not be fetched back. Image downloads were being rejected as unauthorised. On top of that, images posted some months ago were saved with an address that no longer exists, from before the service moved domain.

Status

Both are handled — downloads are authorised correctly, and old addresses are rewritten to the current one as they are served, so historic images become visible again. Verified against the live service.

How to verify
  1. Post a moment with a photo; it must appear immediately.
  2. Scroll to older moments and confirm those images load too.
  3. Check from a second account that the image is visible to other people.
  4. Same check inside a chat — both use the same mechanism.

Confirmed, large, and scheduled separately


Bug_001 Interface still displays in Chinese when English is selected In progress
What we found

You are right, and we now know exactly how much is left. The previous round translated the sign-in, registration, password-reset and two-factor screens. Everything else still has its wording written directly into the code.

Screens still hardcoded : 48 files
Text needing translation: 528 strings

Worst affected:
  Help                    25
  Delete account          23
  Moments                 23
  Contact detail          22
  Minor mode              21
  Chat · Calls            18 each
Plan

528 strings across three languages is roughly 1,500 translations. It is straightforward but large, and mixing it into a bug-fix build would produce a change too big to review safely.

It is scheduled as its own release. The sign-in flow is already done, so the very first thing a new user sees is correct in all three languages.

What to expect meanwhile

On the next build, sign-in and registration will be fully translated; the rest of the app will still show Chinese. Please do not re-file the remaining screens individually — keep this one finding open to cover them all, and we will tell you when the full pass ships.

Full status — round 2, Android


ID Finding Status
Bug_001Interface still in Chinese when English selectedIn progress
Bug_002Text is cut offNeed screenshots
Bug_003Login screen on re-opening despite being logged inFixed
Bug_004Friend requests do not appearRe-test first
Bug_005Image displays with a green tintFixed
Bug_007User gets automatically logged outFixed
Bug_008Unable to register after entering username and passwordNeed details
—Image is cut offNeed screenshots
—Voice message feature is not workingNeed details
—Camera and video recording fail in chatNeed details
—Voice and video calls are not workingRe-test
—Push notification missing on new messageOut of scope
—Push notification missing on new messageOut of scope
—Image does not show up after moment is postedRe-test
—Scroll bar does not focus on the newest postNeed details

Bug_006 and one push-notification row from your sheet are iOS findings and are tracked separately; this report is Android only. Several rows in the sheet have no ID — they are listed here in sheet order so they can be matched up. Giving every row an ID would make future rounds much easier to track; without one we cannot refer to a finding unambiguously.

Round 1 — Android items, where they stand


Condensed status of the Android findings from the first report, for continuity.

FindingStatus
Error messages in the wrong language (sign-in flow)Fixed & live
Interface only available in Chinese (sign-in flow)Fixed & live
Terms and Privacy opened in the wrong languageFixed & live
Password kept when switching between Sign in and RegisterFixed & live
Special characters and unlimited length accepted at registrationFixed & live
Username search returned inaccurate resultsFixed & live
Searching "%" returned every userFixed & live
Cannot sign in on Android devicesWorked around
Forgot Password does nothingPartly — no mail server yet

How to run the next round


Three things would make the next round substantially more useful.

1. Record the exact build

Version and build number, from Me → Settings → About. The confusion described at the top of this page cost real time and can be avoided entirely.

2. Test calls and images on mobile data, with two real devices

Office Wi-Fi hides exactly the class of fault that broke calls. Two phones on mobile networks, ideally on different carriers, is the test that matters.

3. Attach screenshots and recordings directly

The prnt.sc links in the sheet could not be opened from our side. For anything visual — clipping, tinting, layout — an attached image is the difference between a same-day fix and a round trip. For anything intermittent, a screen recording is worth far more than a description.

Also worth knowing