Skip to content

bug: last.fm error "Auth Interaction Required", despite having all settings setup correctly. #335

@angelolz

Description

@angelolz

Please check existing knowledge before opening an issue

Describe the Bug

Given that the app has my api key and secret, it should be able to login automatically without an "Auth Interaction Required" error.

Here's my settings that I have right now for last.fm:

{
    "name": "angel_lastfm",
    "enable": true,
    "configureAs": "client",
    "data": {
        "apiKey": "...",
        "secret": "...",
        "redirectUri": "http://192.168.50.60:9078/lastfm/callback"
    }
}

I also made sure to have the same redirect callback url when creating the api in last.fm itself.

Here's my jellyfin config, although I don't think jellyfin causes any issues here...:

{
    "name": "angel_jellyfin",
    "enable": true,
    "clients": [
        "angel_lastfm"
    ],
    "data": {
        "url": "...",
        "user": "angelolz",
        "apiKey": "..."
    },
    "options": {
        "logPayload": true,
        "logFilterFailure": "warn"
    }
}

Platform

Docker

Versions

  • multi-scrobbler 0.9.10
  • jellyfin 10.10.7

Logs

[2025-08-05 18:20:28.925 -0600] ERROR  : [App] [Scrobblers] [Lastfm - angel_lastfm] Could not initialize automatically
Error: Could not initialize automatically
    at PromisePoolExecutor.handler (CWD/src/backend/tasks/heartbeatClients.ts:25:49)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async PromisePoolExecutor.waitForActiveTaskToFinish (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:375:9)
    at async PromisePoolExecutor.waitForProcessingSlot (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:368:13)
    at async PromisePoolExecutor.process (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:354:13)
    at async PromisePoolExecutor.start (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:273:16)
caused by: Error: Initialization failed
    at LastfmScrobbler.initialize (CWD/src/backend/common/AbstractComponent.ts:82:19)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async LastfmScrobbler.tryInitialize (CWD/src/backend/common/AbstractComponent.ts:102:20)
    at async PromisePoolExecutor.handler (CWD/src/backend/tasks/heartbeatClients.ts:23:29)
    at async PromisePoolExecutor.waitForActiveTaskToFinish (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:375:9)
    at async PromisePoolExecutor.waitForProcessingSlot (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:368:13)
    at async PromisePoolExecutor.process (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:354:13)
    at async PromisePoolExecutor.start (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:273:16)
caused by: Post Initialization: Error occurred during post-initialization hook
    at LastfmScrobbler.initialize (CWD/src/backend/common/AbstractComponent.ts:75:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async LastfmScrobbler.tryInitialize (CWD/src/backend/common/AbstractComponent.ts:102:20)
    at async PromisePoolExecutor.handler (CWD/src/backend/tasks/heartbeatClients.ts:23:29)
    at async PromisePoolExecutor.waitForActiveTaskToFinish (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:375:9)
    at async PromisePoolExecutor.waitForProcessingSlot (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:368:13)
    at async PromisePoolExecutor.process (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:354:13)
    at async PromisePoolExecutor.start (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:273:16)
caused by: Error: API call failed due -> operation failed <- after max retries hit 2
    at LastfmApiClient.callApi (CWD/src/backend/common/vendor/LastfmApiClient.ts:143:27)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async LastfmScrobbler.getScrobblesForRefresh (CWD/src/backend/scrobblers/LastfmScrobbler.ts:50:26)
    at async LastfmScrobbler.refreshScrobbles (CWD/src/backend/scrobblers/AbstractScrobbleClient.ts:322:28)
    at async LastfmScrobbler.postInitialize (CWD/src/backend/scrobblers/AbstractScrobbleClient.ts:315:9)
    at async LastfmScrobbler.initialize (CWD/src/backend/common/AbstractComponent.ts:73:17)
    at async LastfmScrobbler.tryInitialize (CWD/src/backend/common/AbstractComponent.ts:102:20)
    at async PromisePoolExecutor.handler (CWD/src/backend/tasks/heartbeatClients.ts:23:29)
    at async PromisePoolExecutor.waitForActiveTaskToFinish (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:375:9)
    at async PromisePoolExecutor.waitForProcessingSlot (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:368:13)
caused by: Error: Operation failed - Most likely the backend service failed. Please try again.
    at CWD/node_modules/lastfm-node-client/lib/ApiRequest.js:140:11
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async LastfmApiClient.callApi (CWD/src/backend/common/vendor/LastfmApiClient.ts:116:20)
    at async LastfmScrobbler.getScrobblesForRefresh (CWD/src/backend/scrobblers/LastfmScrobbler.ts:50:26)
    at async LastfmScrobbler.refreshScrobbles (CWD/src/backend/scrobblers/AbstractScrobbleClient.ts:322:28)
    at async LastfmScrobbler.postInitialize (CWD/src/backend/scrobblers/AbstractScrobbleClient.ts:315:9)
    at async LastfmScrobbler.initialize (CWD/src/backend/common/AbstractComponent.ts:73:17)
    at async LastfmScrobbler.tryInitialize (CWD/src/backend/common/AbstractComponent.ts:102:20)
    at async PromisePoolExecutor.handler (CWD/src/backend/tasks/heartbeatClients.ts:23:29)
    at async PromisePoolExecutor.waitForActiveTaskToFinish (CWD/node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js:375:9)
[2025-08-05 18:20:26.063 -0600] VERBOSE: [App] [Sources] [Jellyfin - angel_jellyfin] Building required data init succeeded
[2025-08-05 18:20:26.062 -0600] DEBUG  : [App] [Sources] [Jellyfin - angel_jellyfin] Attempting to initialize...
[2025-08-05 18:20:26.061 -0600] VERBOSE: [App] [Heartbeat] [Sources] Starting check...
[2025-08-05 18:20:26.061 -0600] INFO   : [App] Scheduler started.
[2025-08-05 18:20:26.057 -0600] WARN   : [App] Waited too long for clients to start! Moving ahead with sources init...
[2025-08-05 18:20:25.843 -0600] WARN   : [App] [Scrobblers] [API - Lastfm - angel_lastfm] API call failed due to network issue (null), retrying in 3 seconds...
[2025-08-05 18:20:24.263 -0600] WARN   : [App] [Scrobblers] [API - Lastfm - angel_lastfm] API call failed due to network issue (null), retrying in 1.5 seconds...
[2025-08-05 18:20:20.060 -0600] DEBUG  : [App] [Scrobblers] [Lastfm - angel_lastfm] Refreshing recent scrobbles
[2025-08-05 18:20:20.059 -0600] VERBOSE: [App] [Scrobblers] [Lastfm - angel_lastfm] Fetching up to 200 initial scrobbles...
[2025-08-05 18:20:20.058 -0600] DEBUG  : [App] [Scrobblers] [Lastfm - angel_lastfm] [Now Playing] Enabled by default config
[2025-08-05 18:20:20.058 -0600] INFO   : [App] [Scrobblers] [Lastfm - angel_lastfm] Fully Initialized!
[2025-08-05 18:20:20.057 -0600] INFO   : [App] [Scrobblers] [API - Lastfm - angel_lastfm] Redirect URL that will be used on auth callback: 'http://192.168.50.60:9078/lastfm/callback?state=angel_lastfm'
[2025-08-05 18:20:20.056 -0600] DEBUG  : [App] [Scrobblers] [Lastfm - angel_lastfm] Connection check was not required.
[2025-08-05 18:20:20.056 -0600] WARN   : [App] [Scrobblers] [API - Lastfm - angel_lastfm] No session key found. User interaction for authentication required.
[2025-08-05 18:20:20.055 -0600] VERBOSE: [App] [Scrobblers] [Lastfm - angel_lastfm] Building required data init succeeded
[2025-08-05 18:20:20.054 -0600] DEBUG  : [App] [Scrobblers] [Lastfm - angel_lastfm] Attempting to initialize...

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions