Skip to content

Mobile app shows "User profile is unavailable" although profile exists and API returns valid data #1228

Description

@hardwareadictos

Priority/Impact

Medium (affects some functionality)

Description

Environment

  • Wger Server: 2.6
  • Deployment: Official Docker deployment from wger-project/docker
  • PostgreSQL 15
  • PowerSync enabled
  • Android App: 2.0.0 (build 210)

Problem

The Android app successfully authenticates and PowerSync synchronization appears to work correctly, but the profile section of the app displays:

User profile is unavailable

Some profile-related screens also remain loading indefinitely.

What works

  • Login works correctly.
  • PowerSync starts and synchronizes successfully.
  • The user profile exists in the database.
  • The web interface works correctly.
  • The REST API returns the expected profile data.
  • No backend errors appear in Django logs.
  • No PowerSync errors appear in PowerSync logs.

API Response

Request:

GET /api/v2/userprofile/

Response:

{
  "username": "TestUser",
  "email": "user@example.invalid",
  "email_verified": true,
  "is_trustworthy": true,
  "date_joined": "2026-01-15T10:30:00+00:00",
  "gym": null,
  "weight_rounding": null,
  "repetitions_rounding": null,
  "is_temporary": false,
  "workout_reminder_active": false,
  "workout_reminder": 14,
  "workout_duration": 12,
  "last_workout_notification": null,
  "notification_language": 4,
  "age": 35,
  "birthdate": "1990-01-01",
  "height": 180,
  "gender": "1",
  "sleep_hours": 7,
  "work_hours": 8,
  "work_intensity": "1",
  "sport_hours": 4,
  "sport_intensity": "2",
  "freetime_hours": 6,
  "freetime_intensity": "1",
  "calories": 2500,
  "weight_unit": "kg",
  "num_days_weight_reminder": 0
}

The actual values have been anonymized, but the structure and data types match the real API response returned by the server.

PowerSync

PowerSync starts successfully and syncs the user profile bucket:

user_profile["2"]
status=200
operations_synced=2

The synchronization completes successfully and checkpoints advance normally.

Troubleshooting already performed

  • Verified PowerSync configuration.
  • Verified PowerSync token generation.
  • Verified PowerSync synchronization.
  • Verified user profile exists in PostgreSQL.
  • Verified profile contains valid values (height, birthdate, gender, etc.).
  • Verified REST API returns profile data correctly.
  • Cleared application data.
  • Logged out and logged in again.
  • No Django exceptions or tracebacks found.
  • No PowerSync errors found.

Expected behavior

The mobile app should display the user profile and allow access to profile-related screens.

Actual behavior

The mobile app displays:

User profile is unavailable

even though the profile exists and the API returns valid data.

Sync status in a perpetual Connecting state.

My profile in a loading ring loop.

Additional observation

While reviewing the logs, I could see the app successfully calling endpoints such as:

/api/v2/version/
/api/v2/powersync-token/
/api/v2/trophy/
/api/v2/user-trophy/

and all of them return HTTP 200.

However, I could not find any corresponding backend errors explaining why the profile screen fails to load.

Image Image Image

Server version

2.6 -> Docker, latest tag

Mobile app version

2.0.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions