Skip to content

SSO proxy fails silently with NO_SESSION when Jellyfin hostname is already configured in Jellyseerr Environment #121

@johnlx998

Description

@johnlx998

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions