Bugs found in Song GPT for Android

Song GPT

3.0

Song GPT Udio AI is a comprehensive platform for AI-powered music creation and tokenization on the Solana blockchain. Its core features include audio playback, user account management, and song generation.

It can offer great value and entertainment to users who want to enjoy custom covers and audio tracks. The application is versatile, with some interesting features like lyrics highlighting and voice input.

The QAwerk team tested this app and made a few discoveries that we would like to share below.

100K+downloads
281 ratings

When creating song cover, coin balance in main header doesn't decrease

Severity:

Critical

Precondition:

Log in to the account that has coins on it.

Steps to Reproduce:
  1. In the bottom menu, click on the “Cover” button.
  2. Upload any track from your device.
  3. Select Genre.
  4. Select Mood.
  5. Click on the “Configure” button.
  6. Enter Song Lyrics.
  7. Select Genre.
  8. Click on the “Process Song” button.
  9. Wait for the cover to be created.
  10. Check the balance in the upper right corner.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

When creating a song cover, the coin balance in the main header (top of the screen) doesn’t decrease, while the same balance on the profile page gets deducted correctly.

Expected Result:

Both coin balance displays (main header and profile page) should synchronize and update simultaneously when coins are spent for cover creation.

User account is not permanently deleted and restored with all data after re-login

Severity:

Critical

Precondition:
  1. Log in to the account through a Google account.
  2. Create multiple tracks on your account.
Steps to Reproduce:
  1. Click on the profile icon in the upper left corner.
  2. Click on the “Edit Profile” button.
  3. Click on the “Delete Account” button.
  4. Check the box.
  5. Click on the “Delete” button.
  6. Click on the “Login” button.
  7. Click on the “Continue with Google” button.
  8. Select the deleted account.
  9. Check the balance and available audio files.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

After performing account deletion and subsequently logging back into the same account, the account was not deleted — all songs and balance data remain intact.

Expected Result:

After account deletion, the account and all associated data (songs, balance) should be permanently erased and unavailable upon any login attempt.

Incorrect coin deduction calculation after multiple operations

Severity:

Critical

Precondition:
  1. Register an account using the referral program.
  2. Log in to the account (100 coin balance).
Steps to Reproduce:
  1. In the bottom menu, click on the “Cover” button.
  2. Upload any track from your device.
  3. Select Genre.
  4. Select Mood.
  5. Click on the “Configure” button.
  6. Enter Song Lyrics.
  7. Select Genre.
  8. Click on the “Process Song” button.
  9. Wait for the cover to be created.
  10. In the bottom menu, click on the “Cover” button.
  11. Upload any track from your device.
  12. Select Genre.
  13. Select Mood.
  14. Click on the “Configure” button.
  15. Enter Song Lyrics.
  16. Select Genre.
  17. Click on the “Process Song” button.
  18. Wait for the cover to be created.
  19. In the bottom menu, click on the middle button.
  20. Choose the option to generate a composition for 10 coins.
  21. Enter a prompt.
  22. Click on the send button.
  23. Wait for the track to be generated.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

After creating 2 covers (20 coins each) that weren’t deducted due to another bug, generating a 10-coin track set the total balance to 0 coins instead of the correct amount.

Expected Result:

Coin balance should reflect accurate arithmetic calculations regardless of previous unpaid operations. (100-20-20-10=50).

App shows white screen when opening from comment notification

Severity:

Critical

Precondition:
  1. When testing, two accounts must be registered on two devices.
  2. Log in to the account of user 1 on the first device.
  3. Log in to the account of user 2 on the second device.
Steps to Reproduce:
  1. In the bottom menu, click on the middle button.
  2. Choose the option to generate a composition for 10 coins.
  3. Enter a prompt.
  4. Click on the “Send” button.
  5. Wait for the track to be generated.
  6. Click on the generated track.
  7. Click on the “Share track” button.
  8. Choose any option to share with the second device.
  9. Close the app completely and lock your first device.
  10. Open the link on your second device.
  11. Click on the “Comment” button.
  12. Enter your comment.
  13. Click on the “Send” button.
  14. Unlock the first device.
  15. Pull the notification panel down.
  16. Tap on the notification.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

After tapping a notification about a new comment, the app opens but displays only a white screen instead of loading the song page with comments.

Expected Result:

Tapping the comment notification should open the app and directly navigate to the song page where the comment was posted.

Song lyrics display shows only music note symbols instead of generated text

Severity:

Major

Precondition:

Log in to the account.

Steps to Reproduce:
  1. In the bottom menu, click on the middle button.
  2. Choose the option to generate a composition for 10 coins.
  3. Enter a prompt.
  4. Click on the “Send” button.
  5. Wait for the track to be generated.
  6. Click on the generated track.
  7. Expand the lyrics.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

The lyrics section displays generic music note symbols (♪) instead of the actual generated song lyrics text.
The bug is only relevant for some tracks.

Expected Result:

The app should display the properly generated song lyrics text in the lyrics section.

Lyrics highlighting progress shows for wrong track during playback

Severity:

Major

Precondition:

Log in to the account.

Steps to Reproduce:
  1. In the bottom menu, click on the middle button.
  2. Enter a prompt.
  3. Click on the “Send” button.
  4. Wait for the track to be generated.
  5. Enter a prompt.
  6. Click on the “Send” button.
  7. Wait for the track to be generated.
  8. Click on the generated track and start playing it.
  9. Scroll up and expand the lyrics to another song.
  10. Check the progress of text highlighting.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

When playing one song and opening the lyrics view of a different song, the line-by-line highlighting progress synchronizes with the playing track but displays on the wrong (opened) lyrics.

Expected Result:

The lyrics highlighting should only appear and progress on the lyrics of the currently playing track.

Infinite loading when downloading track to device

Severity:

Major

Precondition:

Log in to the account.

Steps to Reproduce:
  1. In the bottom menu, click on the middle button.
  2. Enter a prompt
  3. Click on the “Send” button.
  4. Wait for the track to be generated.
  5. Click the “Download” button for the first generated text and then immediately for the second one.
  6. Save the second track.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

After clicking the “Download” button for a track, the download process starts but gets stuck in an endless loading state without completing the download to the device.

Expected Result:

After clicking the download button for a track, the download process starts and then completes the download to the device.

Clicking like adds two likes instead of one

Severity:

Major

Precondition:

Log in to the account.

Steps to Reproduce:
  1. In the bottom menu, click on the “Explore” button.
  2. Click on any track.
  3. Click on the “Like” button.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

Pressing the “Like” button on a track automatically adds two likes to the counter instead of one.

Expected Result:

A single click on the “Like” button should add only one like to the track.

Removing like only removes one like when two were added

Severity:

Major

Precondition:

Log in to the account.

Steps to Reproduce:
  1. In the bottom menu, click on the “Explore” button.
  2. Click on any track.
  3. Click on the “Like” button.
  4. Click on the “Like” button.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

When unliking a track that had two likes added from a single click, only one like is removed, leaving one like still active.

Expected Result:

Clicking unlike should remove all likes that were added from the original action, returning the like count to its previous state.

Track fails to play on first “Play” button click

Severity:

Major

Precondition:

Log in to the account.

Steps to Reproduce:
  1. In the bottom menu, click on the “Explore” button.
  2. Click on any track.
  3. Click on the “Start” button.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

When opening a track from the “Explore” tab and clicking the “Play” button for the first time, the track doesn’t start playing.

Expected Result:

The track should start playing immediately on the first click on the “Play” button.

Displayed lyrics don't match actual audio content

Severity:

Major

Precondition:

Log in to the account.

Steps to Reproduce:

Open the link on the device where the application is installed https://songgpt.com/songs/for_a_reason_(official_video)_karan_aujla__tania_2-03958782.

Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

The text shown as song lyrics completely differs from the words being sung in the audio track.

Expected Result:

The displayed lyrics should match the vocal content of the generated song.

Keyboard automatically switches to letters after each digit during verification code input

Severity:

Minor

Steps to Reproduce:
  1. Register a new account.
  2. During the email confirmation step, click the button to change the keyboard to numbers.
  3. Enter one character.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

While entering a numeric verification code, after typing each digit, the keyboard automatically switches from numeric to letter layout, forcing manual switching back for subsequent digits.

Expected Result:

The keyboard should remain in numeric layout throughout the entire verification code input process.

Email validation allows infinite account creation using plus addressing

Severity:

Minor

Precondition:

Log in to the account.

Steps to Reproduce:
  1. Click on the “Log In” button.
  2. Click on the “Sign Up” button.
  3. Enter name.
  4. Enter email with “+1” before the @ sign.
  5. Enter the password.
  6. Click on the “Continue” button.
  7. Enter the code from the email without “+1”.
  8. Click on the “Verify” button.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

The system accepts email addresses with plus signs (e.g., test+1@gmail.com, test+2@gmail.com) as unique addresses, allowing unlimited account creation that all deliver to the same actual email inbox.

Expected Result:

The system should either normalize plus-addressed emails to their base form or implement additional verification mechanisms to prevent abuse.

Email validation allows infinite account creation using plus addressing

Cannot resume playback from notification panel widget after pressing stop

Severity:

Minor

Precondition:

Log in to the account.

Steps to Reproduce:
  1. In the bottom menu, click on the middle button.
  2. Enter a prompt.
  3. Click on the “Send” button.
  4. Wait for the track to be generated.
  5. Click on the “Track Play” button.
  6. Expand the notification panel.
  7. Click on the “Stop” button.
  8. Click on the “Play” button.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

After stopping playback using the “Stop” button in the notification panel widget, the “Play” button in the same widget becomes unresponsive and cannot resume track playback.

Expected Result:

The “Play” button in the notification panel widget should always be functional and resume playback when pressed, even after stopping.

Generated tracks display in wrong order — Track 2 appears before Track 1

Severity:

Trivial

Precondition:

Log in to the account.

Steps to Reproduce:
  1. In the bottom menu, click on the middle button.
  2. Enter a prompt.
  3. Click on the “Send” button.
  4. Wait for the tracks to be generated.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

When two tracks are generated, they appear in the interface with Track 2 shown first and Track 1 second, reversing their actual generation order.

Expected Result:

Generated tracks should display in chronological order — Track 1 first, followed by Track 2.

Generated tracks display in wrong order — Track 2 appears before Track 1

Voice input button is movable around screen instead of being fixed

Severity:

Trivial

Precondition:

Log in to the account.

Steps to Reproduce:
  1. In the bottom menu, click on the “Explore” button.
  2. Hold down the “Voice” input button and drag it across the screen.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

The “Voice” input button can be dragged and moved to different positions on the screen instead of remaining in a fixed location.

Expected Result:

The “Voice” input button should maintain a fixed position on the screen and not be draggable by the user.

Central bottom menu button overlaps with audio progress slider

Severity:

Trivial

Precondition:

Log in to the account.

Steps to Reproduce:
  1. In the bottom menu, click on the middle button.
  2. Enter a prompt.
  3. Click on the “Send” button.
  4. Wait for the tracks to be generated.
  5. Run the generated track.
  6. In the bottom menu, click on the “Explore” button.
Environment:

Xiaomi Mi 10 (Android 13 TKQ1.221114.001, Xiaomi HyperOS 1.0.1.0.)

Actual Result:

The central button in the bottom navigation menu overlaps and covers part of the audio playback progress slider, making it difficult to interact with the slider.

Expected Result:

All UI elements should have proper spacing without overlapping, ensuring the audio progress slider remains fully accessible.

Central bottom menu button overlaps with audio progress slider
When testing SongGPT, I identified a few issues, including a critical bug in managing token/coin balances incorrectly after purchases and song generation. To ensure a stable launch, I recommend conducting thorough functional testing to fix this issue, improve the app’s overall functionality, and straighten out some minor UI flaws.
Iryna, QA engineer

Iryna, QA engineer

Need a reliable QA partner?

Hire us