diff --git a/src/renderer/api/subsonic/subsonic-api.ts b/src/renderer/api/subsonic/subsonic-api.ts index 21001388..0e7b0913 100644 --- a/src/renderer/api/subsonic/subsonic-api.ts +++ b/src/renderer/api/subsonic/subsonic-api.ts @@ -251,6 +251,9 @@ axiosClient.interceptors.response.use( message: data['subsonic-response'].error.message, title: i18n.t('error.genericError', { postProcess: 'sentenceCase' }) as string, }); + + // Since we do status === 200, override this value with the error code + response.status = data['subsonic-response'].error.code; } } diff --git a/src/renderer/api/subsonic/subsonic-controller.ts b/src/renderer/api/subsonic/subsonic-controller.ts index f1b1491e..12fa2399 100644 --- a/src/renderer/api/subsonic/subsonic-controller.ts +++ b/src/renderer/api/subsonic/subsonic-controller.ts @@ -94,7 +94,7 @@ export const SubsonicController: ControllerEndpoint = { }; } - await ssApiClient({ server: null, url: cleanServerUrl }).authenticate({ + const resp = await ssApiClient({ server: null, url: cleanServerUrl }).authenticate({ query: { c: 'Feishin', f: 'json', @@ -103,6 +103,10 @@ export const SubsonicController: ControllerEndpoint = { }, }); + if (resp.status !== 200) { + throw new Error('Failed to log in'); + } + return { credential, userId: null,