Files
MobileMusicAssistant/Mobile Music Assistant/DocsTroubleshooting-Loading.md
T
2026-03-27 09:21:41 +01:00

309 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Troubleshooting: Players/Library Not Loading
## Symptom
After successful login, the Players and Library tabs show:
- Loading spinner forever
- "No Players Found"
- "Error Loading Players"
- Empty lists
## Debugging Steps
### 1. Check Connection Info
**In the app:**
1. Go to **Players** tab
2. Tap **Info icon** (️) in toolbar
3. Check:
- ✅ Server URL is correct
- ✅ "Connected" shows "Yes"
- ✅ "WebSocket" shows "Connected"
- ✅ "Status" shows "Authenticated"
### 2. Check Console Logs
**In Xcode:**
1. Run the app with console open (⌘+Shift+Y)
2. Look for these log messages:
**Good signs:**
```
🔵 PlayerListView: Starting to load players...
🔵 MAService.getPlayers: Sending 'players' command
✅ MAService.getPlayers: Received 3 players
✅ PlayerListView: Successfully loaded 3 players
```
**Bad signs:**
```
❌ MAService.getPlayers: Error - notConnected
❌ PlayerListView: Failed to load players: Not connected to server
```
**Or:**
```
❌ WebSocket receive error: The operation couldn't be completed
❌ Failed to decode response
```
### 3. Common Causes & Solutions
#### Cause A: WebSocket Not Connected
**Symptoms:**
- Console shows: "Not connected to server"
- Connection Info shows: WebSocket = "Disconnected"
**Solution:**
```swift
// Check if WebSocket endpoint is reachable
// For reverse proxy users:
wss://musicassistant-app.hanold.online/ws
// Test in terminal:
websocat wss://musicassistant-app.hanold.online/ws
```
**Reverse Proxy Fix:**
Ensure nginx has WebSocket support:
```nginx
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
```
#### Cause B: API Endpoint Wrong
**Symptoms:**
- Login works but nothing else loads
- Console shows: "Invalid URL" or "404"
**Solution:**
Check server URL format:
-`https://musicassistant-app.hanold.online` (no port if using reverse proxy)
-`http://192.168.1.100:8095` (with port if direct)
-`https://musicassistant-app.hanold.online:8095` (wrong if using reverse proxy on 443)
#### Cause C: Token Invalid
**Symptoms:**
- Login succeeds but API calls fail
- Console shows: "401 Unauthorized"
**Solution:**
1. Generate new long-lived token
2. In app: Settings → Disconnect
3. Login again with new token
#### Cause D: Music Assistant Commands Changed
**Symptoms:**
- "Command not found" errors
- Decoding errors
**Solution:**
- Update Music Assistant server to latest version
- Check API compatibility (Server v2.7+ required)
#### Cause E: CORS or Security Issues
**Symptoms:**
- WebSocket connects but commands fail
- Mixed content warnings
**Solution:**
- Ensure reverse proxy allows WebSocket
- Check HTTPS is properly configured
- Verify no CORS blocking
### 4. Test WebSocket Directly
**Terminal test:**
```bash
# Install websocat
brew install websocat
# Test WebSocket connection
websocat wss://musicassistant-app.hanold.online/ws
# Should see connection open
# Press Ctrl+C to close
```
**With authentication:**
```bash
# You'll need to send auth first
# This is complex - use app debugging instead
```
### 5. Test API Endpoints
**Test REST API:**
```bash
# Get players (won't work without WebSocket but tests connectivity)
curl -X POST https://musicassistant-app.hanold.online/api/players \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"
```
### 6. Enable Detailed Logging
The app now includes print statements for debugging.
**What to look for in console:**
**1. Connection Phase:**
```
[INFO] Connecting to Music Assistant
[INFO] Connecting to wss://...
[INFO] Connected successfully
```
**2. Loading Phase:**
```
🔵 PlayerListView: Starting to load players...
🔵 MAService.getPlayers: Sending 'players' command
[DEBUG] Sending command: players (ID: ABC-123)
```
**3. Response Phase:**
```
[DEBUG] Received event: player_updated
✅ MAService.getPlayers: Received 3 players
```
**4. Error Messages:**
```
❌ WebSocket receive error: ...
❌ Failed to decode response: ...
❌ Request timeout
```
### 7. Check Music Assistant Server
**On the server:**
```bash
# Check Music Assistant is running
systemctl status music-assistant
# Check logs
journalctl -u music-assistant -f
# Look for:
# - WebSocket connection attempts
# - Authentication success/failure
# - Command processing
# - Errors
```
**Expected in server logs:**
```
[INFO] WebSocket connection from 192.168.1.X
[INFO] Client authenticated: user@example.com
[DEBUG] Received command: players
[DEBUG] Sent response: players (3 items)
```
## Quick Fixes
### Fix 1: Reconnect
**In app:**
1. Players tab → Info icon → **Reconnect**
2. Or: Settings → **Disconnect** → Login again
### Fix 2: Clear Cache
**In Xcode:**
1. Product → Clean Build Folder
2. Delete app from simulator/device
3. Rebuild and run
### Fix 3: Check WebSocket in nginx
**Add logging:**
```nginx
location /ws {
access_log /var/log/nginx/websocket.log;
error_log /var/log/nginx/websocket_error.log;
proxy_pass http://127.0.0.1:8095;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
```
**Check logs:**
```bash
tail -f /var/log/nginx/websocket_error.log
```
### Fix 4: Test with Browser
**Open browser:**
```
https://musicassistant-app.hanold.online
```
**If web interface works:**
→ Problem is in iOS app
**If web interface doesn't work:**
→ Problem is server/proxy configuration
## iOS-Specific Issues
### Issue: App Timeout
**Cause:** iOS background timeout (30 seconds)
**Solution:**
Server must respond quickly. Check:
- Music Assistant not overloaded
- Database queries fast
- Network latency low
### Issue: App Suspension
**Cause:** App goes to background
**Solution:**
- App reconnects automatically
- Pull to refresh when returning
### Issue: SSL Certificate
**Cause:** Self-signed certificate
**Solution:**
Add ATS exception (see HTTPS-Troubleshooting.md)
## Still Not Working?
**Collect this info:**
1. **Server URL:** ________________
2. **Music Assistant Version:** ________________
3. **Reverse Proxy:** Yes/No
4. **Console Output:** (paste logs)
5. **Connection Info Screenshot**
6. **Server Logs:** (paste relevant lines)
**Debug checklist:**
- [ ] Browser can access https://YOUR_SERVER
- [ ] WebSocket test with websocat works
- [ ] Server logs show WebSocket connections
- [ ] Token is valid (not expired/revoked)
- [ ] Reverse proxy has WebSocket support
- [ ] Console shows "Connected successfully"
- [ ] Music Assistant has configured players
- [ ] Network connectivity is good
**If all checks pass but still fails:**
→ Likely a bug in the app or API incompatibility
→ Check Music Assistant version is 2.7+
→ Try with official Music Assistant mobile app to compare