Snd-R / komf

Komga and Kavita metadata fetcher
MIT License
299 stars 17 forks source link

Internal Server Error (500) when updating series metadata #152

Closed ShivamB25 closed 2 months ago

ShivamB25 commented 2 months ago

Description:

When attempting to update series metadata, an Internal Server Error (500) is encountered. The error occurs specifically when trying to update the metadata for a series titled "Never Say Ugly" (originally "Don't Call Me Ugly").

Steps to Reproduce:

  1. Trigger a metadata update for the series "Don't Call Me Ugly" (Japanese: "ブスなんて言わないで", Romaji: "Busu nante Iwanaide")
  2. Observe the error in the logs

Expected Behavior:

The series metadata should be updated successfully without any errors.

Actual Behavior:

An Internal Server Error (500) is thrown with the following message:

Illegal character in query at index 111: https://ebookjapan.yahoo.co.jp/search/?keyword=ブスなんて言わないで&useTitle=1&vctrackinfo=088169131102349414230306173348|vcptn=ZAYj_AADLAZStfLtCoICrQqCADd03w&dealerid=40001&utm_source=asp&utm_medium=vc&utm_campaign=amount

Environment:

Logs:

08:03:16.608 [komf-event-listener-7] INFO org.snd.mediaserver.MetadataUpdateService -- updating series Never Say Ugly
Exception in thread "komf-event-listener-7" org.snd.common.exceptions.HttpException: response code: 500 url: http://komga:25600/api/v1/series/0GH844PHPGM9B/metadata body: {"timestamp":"2024-07-02T08:03:17.631+00:00","status":500,"error":"Internal Server Error","message":"Illegal character in query at index 111: https://ebookjapan.yahoo.co.jp/search/?keyword=ブスなんて言わないで&useTitle=1&vctrackinfo=088169131102349414230306173348|vcptn=ZAYj_AADLAZStfLtCoICrQqCADd03w&dealerid=40001&utm_source=asp&utm_medium=vc&utm_campaign=amount","path":"/api/v1/series/0GH844PHPGM9B/metadata"}
        at org.snd.common.http.HttpClient.throwException(HttpClient.kt:69)
        at org.snd.common.http.HttpClient.access$throwException(HttpClient.kt:16)
        at org.snd.common.http.HttpClient$execute$1.invoke(HttpClient.kt:28)
        at org.snd.common.http.HttpClient$execute$1.invoke(HttpClient.kt:26)
        at org.snd.common.http.HttpClient.rateLimited$lambda$0(HttpClient.kt:54)
        at io.github.resilience4j.ratelimiter.RateLimiter.lambda$decorateCheckedSupplier$3(RateLimiter.java:219)
        at io.github.resilience4j.retry.Retry.lambda$decorateCheckedSupplier$1(Retry.java:135)
        at org.snd.common.http.HttpClient.rateLimited(HttpClient.kt:56)
        at org.snd.common.http.HttpClient.execute(HttpClient.kt:26)
        at org.snd.mediaserver.komga.KomgaClient.updateSeriesMetadata-w7W7Ha4(KomgaClient.kt:82)
        at org.snd.mediaserver.komga.KomgaClient.updateSeriesMetadata-w7W7Ha4$default(KomgaClient.kt:67)
        at org.snd.mediaserver.komga.KomgaMediaServerClientAdapter.updateSeriesMetadata-mxbjABM(KomgaMediaServerClientAdapter.kt:89)
        at org.snd.mediaserver.MetadataUpdateService.updateSeriesMetadata(MetadataUpdateService.kt:63)
        at org.snd.mediaserver.MetadataUpdateService.updateMetadata(MetadataUpdateService.kt:50)
        at org.snd.mediaserver.MetadataService.matchSeriesMetadata-APDQdY8(MetadataService.kt:147)
        at org.snd.mediaserver.komga.KomgaEventListener.processEvents(KomgaEventListener.kt:134)
        at org.snd.mediaserver.komga.KomgaEventListener.onEvent$lambda$6$lambda$5(KomgaEventListener.kt:120)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)

Additional Context:

The error seems to be related to an illegal character in the URL query string, specifically in the Japanese title "ブスなんて言わないで". This could be due to improper URL encoding when making the request to update the metadata.

Possible Solution:

Implement proper URL encoding for the metadata update request, especially for non-ASCII characters in the series title or other metadata fields.

Snd-R commented 2 months ago

duplicate of #149