Moonfin Plugin version: 1.8.2.0
Moonfin AndroidTV version: latest (Play Store)
Jellyfin version: 10.11.x (Docker, host networking)
Jellyseerr version: 2.7.3 (Docker, bridge networking)
Client: Google TV Streamer (Android TV)
Description:
The Moonfin SSO proxy returns {"error":"Not authenticated with Seerr","code":"NO_SESSION"} for all users and never creates session files in the jellyseerr-sessions directory. The Seerr tab in the Android TV client shows category labels but no content.
Root Cause Identified:
When the Moonfin plugin attempts to authenticate with Jellyseerr on behalf of a user, it sends the hostname parameter in the POST request to /api/v1/auth/jellyfin. However, when Jellyseerr already has a Jellyfin server configured, it rejects this with:
HTTP 500 - {"error":"Jellyfin hostname already configured"}
This causes the authentication to fail silently — no session cookie is returned, no session file is created, and no error is logged in Jellyfin logs.
Verification:
Manually calling the auth endpoint without the hostname parameter succeeds:
bashcurl -X POST "http://localhost:5055/api/v1/auth/jellyfin"
-H "Content-Type: application/json"
-H "X-Api-Key: YOUR_KEY"
-d '{"username":"user","password":"password"}'
Returns HTTP 200 with a valid connect.sid session cookie.
Workaround:
Manually authenticate against Jellyseerr, then plant the resulting session cookie into the Moonfin session store at:
/path/to/jellyfin/config/plugins/configurations/Moonfin/jellyseerr-sessions/{jellyfinUserId}.json
Format:
json{
"jellyfinUserId": "jellyfin-user-uuid",
"sessionCookie": "connect.sid value",
"jellyseerrUserId": 4,
"username": "username",
"displayName": "username",
"avatar": "/avatarproxy/...",
"permissions": 32,
"createdAt": 1746230483000,
"lastValidated": 1746230483000
}
Then restart Jellyfin. Cookie expires after ~30 days requiring the workaround to be repeated.
Expected Behavior:
The SSO proxy should authenticate without passing the hostname parameter when Jellyseerr already has a Jellyfin server configured, or should handle the 500 error gracefully and retry without the hostname parameter.
Moonfin Plugin version: 1.8.2.0
Moonfin AndroidTV version: latest (Play Store)
Jellyfin version: 10.11.x (Docker, host networking)
Jellyseerr version: 2.7.3 (Docker, bridge networking)
Client: Google TV Streamer (Android TV)
Description:
The Moonfin SSO proxy returns {"error":"Not authenticated with Seerr","code":"NO_SESSION"} for all users and never creates session files in the jellyseerr-sessions directory. The Seerr tab in the Android TV client shows category labels but no content.
Root Cause Identified:
When the Moonfin plugin attempts to authenticate with Jellyseerr on behalf of a user, it sends the hostname parameter in the POST request to /api/v1/auth/jellyfin. However, when Jellyseerr already has a Jellyfin server configured, it rejects this with:
HTTP 500 - {"error":"Jellyfin hostname already configured"}
This causes the authentication to fail silently — no session cookie is returned, no session file is created, and no error is logged in Jellyfin logs.
Verification:
Manually calling the auth endpoint without the hostname parameter succeeds:
bashcurl -X POST "http://localhost:5055/api/v1/auth/jellyfin"
-H "Content-Type: application/json"
-H "X-Api-Key: YOUR_KEY"
-d '{"username":"user","password":"password"}'
Returns HTTP 200 with a valid connect.sid session cookie.
Workaround:
Manually authenticate against Jellyseerr, then plant the resulting session cookie into the Moonfin session store at:
/path/to/jellyfin/config/plugins/configurations/Moonfin/jellyseerr-sessions/{jellyfinUserId}.json
Format:
json{
"jellyfinUserId": "jellyfin-user-uuid",
"sessionCookie": "connect.sid value",
"jellyseerrUserId": 4,
"username": "username",
"displayName": "username",
"avatar": "/avatarproxy/...",
"permissions": 32,
"createdAt": 1746230483000,
"lastValidated": 1746230483000
}
Then restart Jellyfin. Cookie expires after ~30 days requiring the workaround to be repeated.
Expected Behavior:
The SSO proxy should authenticate without passing the hostname parameter when Jellyseerr already has a Jellyfin server configured, or should handle the 500 error gracefully and retry without the hostname parameter.