kiranshila / Doplarr

An *arr request bot for Discord
MIT License
407 stars 30 forks source link

JSON parse error with Sonarr #110

Closed sjlu closed 1 year ago

sjlu commented 1 year ago

Describe the bug JSON parse error when searching for series, returns no results.

Expected behavior Returns results for series.

Screenshots

image

Logs

2022-12-22T18:40:21.320Z ubuntu INFO [doplarr.interaction-state-machine:28] - Performing search for series mythic quest
2022-12-22T18:40:22.582Z ubuntu FATAL [doplarr.utils:78] - 
                                                   java.lang.Thread.run                 Thread.java:  829
                  java.util.concurrent.CompletableFuture$Completion.run      CompletableFuture.java:  478
         java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire      CompletableFuture.java:  840
                        java.util.concurrent.CompletableFuture.postFire      CompletableFuture.java:  610
                    java.util.concurrent.CompletableFuture.postComplete      CompletableFuture.java:  506
                java.util.concurrent.CompletableFuture$UniApply.tryFire      CompletableFuture.java:  642
                                       hato.client/request*/reify/apply                  client.clj:  308
                              hato.middleware/wrap-request-timing/fn/fn              middleware.clj:  571
                               hato.middleware/wrap-decompression/fn/fn              middleware.clj:  641
                             hato.middleware/wrap-output-coercion/fn/fn              middleware.clj:  274
                               hato.middleware/output-coercion-response              middleware.clj:  260
                                                                    ...                                  
                                                     hato.middleware/fn              middleware.clj:  211
                                       hato.middleware/coerce-json-body              middleware.clj:  178
                                                                    ...                                  
                              hato.middleware/json-decode-stream-strict              middleware.clj:   73
                              hato.middleware/json-decode-stream-strict              middleware.clj:   77
                                                     clojure.core/apply                    core.clj:  667
                                                                    ...                                  
                                      cheshire.core/parse-stream-strict                    core.clj:  269
                                      cheshire.core/parse-stream-strict                    core.clj:  272
                                            cheshire.parse/parse-strict                   parse.clj:   82
        com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken  ReaderBasedJsonParser.java:  802
  com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue  ReaderBasedJsonParser.java: 2005
com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar      ParserMinimalBase.java:  659
         com.fasterxml.jackson.core.base.ParserMinimalBase._reportError      ParserMinimalBase.java:  735
                  com.fasterxml.jackson.core.JsonParser._constructError             JsonParser.java: 2391
com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
                                                at [Source: (BufferedReader); line: 1, column: 2]
           location: #object[com.fasterxml.jackson.core.JsonLocation 0x58ccfbde "[Source: (BufferedReader); line: 1, column: 2]"]
    originalMessage: "Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')"
          processor: #object[com.fasterxml.jackson.core.json.ReaderBasedJsonParser 0x1bd460e4 "com.fasterxml.jackson.core.json.ReaderBasedJsonParser@1bd460e4"]
     java.util.concurrent.CompletionException: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
                                                at [Source: (BufferedReader); line: 1, column: 2]

Additional context Java install on Ubuntu

Java version:

openjdk version "11.0.17" 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu218.04, mixed mode, sharing)

Sonarr version:

Version
3.0.9.1549
Package Version
3.0.9 by [Team Sonarr](https://sonarr.tv/)
Mono Version
6.12.0.182
kiranshila commented 1 year ago

Woah interesting. Can you perform the same request with :log-level set to :trace?

sjlu commented 1 year ago
2022-12-22T20:12:43.613Z ubuntu TRACE [discljord.messaging.impl:?] - Making request
2022-12-22T20:12:43.890Z ubuntu TRACE [discljord.messaging.impl:?] - Got response from request {:opts {:query-params nil, :headers {Authorization Bot X, User-Agent DiscordBot (https://github.com/discljord/discljord, 1.3.1) , Content-Type multipart/form-data}, :multipart [{:name payload_json, :content {"audit_reason":null,"data":{"flags":64},"type":5}}], :method :post, :url https://discord.com/api/v9/interactions/1055578656698798190/aW50ZXJhY3Rpb246MTA1NTU3ODY1NjY5ODc5ODE5MDpFd2FrdDlRMGpwWWI2TlZYTDVPZ3ZhQXRBRE9rZ3RCSTBuTzlWR3hoUDhubnVBZkp0bndHRjVQQ0ppTUl0VVJDaWVIZE1FMWVTeFVIMW55bXhRSE96WWtuVEJWN1o3S2tDdnRkbEdQRnMyalJNWFBTaWhkUncyTjBvZDJ4TDdjWA/callback}, :body , :headers {:date Thu, 22 Dec 2022 20:12:43 GMT, :x-content-type-options nosniff, :via 1.1 google, :server cloudflare, :report-to {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=%2B0KmqW%2BZd721F2x1VR08CYpyvn5b14cMvtf5Rq9GIsXTve7cwZrKapkkZhfYF6zCvCT6TNajTUZEj6UbuQrxslhsa30t7BUkt%2B6A3Fa95F%2F4dU%2BxCwVlHJnNAX7H"}],"group":"cf-nel","max_age":604800}, :cf-ray 77db83949ba88cab-EWR, :strict-transport-security max-age=31536000; includeSubDomains; preload, :alt-svc h3=":443"; ma=86400, h3-29=":443"; ma=86400, :content-type text/html; charset=utf-8, :cf-cache-status DYNAMIC, :connection keep-alive, :nel {"success_fraction":0,"report_to":"cf-nel","max_age":604800}, :set-cookie __dcfduid=fe89532e823411ed85ea0a9c958e8f9e; Expires=Tue, 21-Dec-2027 20:12:43 GMT; Max-Age=157680000; Secure; HttpOnly; Path=/,__sdcfduid=fe89532e823411ed85ea0a9c958e8f9e231e4ad5e2734de4d138a98a0f6d18283864bc68ca1e471b7df932b3bea2aab7; Expires=Tue, 21-Dec-2027 20:12:43 GMT; Max-Age=157680000; Secure; HttpOnly; Path=/,__cfruid=a4fb6c82125d79858bdc6ad499c032593af6a899-1671739963; path=/; domain=.discord.com; HttpOnly; Secure; SameSite=None}, :status 204}
2022-12-22T20:12:43.891Z ubuntu INFO [doplarr.interaction-state-machine:28] - Performing search for series mythic quest
2022-12-22T20:12:44.806Z ubuntu TRACE [doplarr.utils:24] - Performing HTTP request :get http://localhost:8989/api/v3/series/lookup {:query-params {:term "mythic quest"}}
2022-12-22T20:12:45.060Z ubuntu TRACE [doplarr.utils:22] - HTTP Response  java.util.concurrent.CompletionException: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
 at [Source: (BufferedReader); line: 1, column: 2]
2022-12-22T20:12:45.062Z ubuntu FATAL [doplarr.utils:78] - 
                                                   java.lang.Thread.run                 Thread.java:  829
                  java.util.concurrent.CompletableFuture$Completion.run      CompletableFuture.java:  478
         java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire      CompletableFuture.java:  840
                        java.util.concurrent.CompletableFuture.postFire      CompletableFuture.java:  610
                    java.util.concurrent.CompletableFuture.postComplete      CompletableFuture.java:  506
                java.util.concurrent.CompletableFuture$UniApply.tryFire      CompletableFuture.java:  642
                                       hato.client/request*/reify/apply                  client.clj:  308
                              hato.middleware/wrap-request-timing/fn/fn              middleware.clj:  571
                               hato.middleware/wrap-decompression/fn/fn              middleware.clj:  641
                             hato.middleware/wrap-output-coercion/fn/fn              middleware.clj:  274
                               hato.middleware/output-coercion-response              middleware.clj:  260
                                                                    ...                                  
                                                     hato.middleware/fn              middleware.clj:  211
                                       hato.middleware/coerce-json-body              middleware.clj:  178
                                                                    ...                                  
                              hato.middleware/json-decode-stream-strict              middleware.clj:   73
                              hato.middleware/json-decode-stream-strict              middleware.clj:   77
                                                     clojure.core/apply                    core.clj:  667
                                                                    ...                                  
                                      cheshire.core/parse-stream-strict                    core.clj:  269
                                      cheshire.core/parse-stream-strict                    core.clj:  272
                                            cheshire.parse/parse-strict                   parse.clj:   82
        com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken  ReaderBasedJsonParser.java:  802
  com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue  ReaderBasedJsonParser.java: 2005
com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar      ParserMinimalBase.java:  659
         com.fasterxml.jackson.core.base.ParserMinimalBase._reportError      ParserMinimalBase.java:  735
                  com.fasterxml.jackson.core.JsonParser._constructError             JsonParser.java: 2391
com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
                                                at [Source: (BufferedReader); line: 1, column: 2]
           location: #object[com.fasterxml.jackson.core.JsonLocation 0x6b54fe97 "[Source: (BufferedReader); line: 1, column: 2]"]
    originalMessage: "Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')"
          processor: #object[com.fasterxml.jackson.core.json.ReaderBasedJsonParser 0x29bfded1 "com.fasterxml.jackson.core.json.ReaderBasedJsonParser@29bfded1"]
     java.util.concurrent.CompletionException: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
                                                at [Source: (BufferedReader); line: 1, column: 2]

2022-12-22T20:12:45.222Z ubuntu TRACE [discljord.messaging.impl:?] - Got event [{:discljord.messaging.specs/action :edit-original-interaction-response, :discljord.messaging.specs/major-variable {:discljord.messaging.specs/major-variable-value aW50ZXJhY3Rpb246MTA1NTU3ODY1NjY5ODc5ODE5MDpFd2FrdDlRMGpwWWI2TlZYTDVPZ3ZhQXRBRE9rZ3RCSTBuTzlWR3hoUDhubnVBZkp0bndHRjVQQ0ppTUl0VVJDaWVIZE1FMWVTeFVIMW55bXhRSE96WWtuVEJWN1o3S2tDdnRkbEdQRnMyalJNWFBTaWhkUncyTjBvZDJ4TDdjWA, :discljord.messaging.specs/major-variable-type :discljord.messaging.specs/interaction-token}} #object[discljord.util.DerefablePromiseChannel 57136be "discljord.util.DerefablePromiseChannel@57136be"] 1055505408053215322 :user-agent nil :audit-reason nil :content Search result returned no hits :flags 64]
2022-12-22T20:12:45.224Z ubuntu TRACE [discljord.messaging.impl:?] - Stepping agent with process {:discljord.messaging.specs/rate-limits #object[clojure.lang.Atom 0x5e3baf72 {:status :ready, :val {ae189c08c8f3c47d2311646889fed041 {nil {:discljord.messaging.specs/rate 2, :discljord.messaging.specs/remaining 0, :discljord.messaging.specs/reset 1671739972743}}}}], :discljord.messaging.specs/endpoint-agents {{:discljord.messaging.specs/action :bulk-overwrite-guild-application-commands} #object[clojure.lang.Agent 0x448283f6 {:status :ready, :val ae189c08c8f3c47d2311646889fed041}], {:discljord.messaging.specs/action :create-interaction-response} #object[clojure.lang.Agent 0x167460a9 {:status :ready, :val nil}]}, :discljord.specs/channel #object[clojure.core.async.impl.channels.ManyToManyChannel 0x76492db2 clojure.core.async.impl.channels.ManyToManyChannel@76492db2], :discljord.specs/token Bot X, :discljord.messaging.specs/global-limit #object[clojure.lang.Atom 0x6e528c43 {:status :ready, :val nil}]}
2022-12-22T20:12:45.224Z ubuntu TRACE [discljord.messaging.impl:?] - Making request to endpoint {:discljord.messaging.specs/action :edit-original-interaction-response, :discljord.messaging.specs/major-variable {:discljord.messaging.specs/major-variable-value aW50ZXJhY3Rpb246MTA1NTU3ODY1NjY5ODc5ODE5MDpFd2FrdDlRMGpwWWI2TlZYTDVPZ3ZhQXRBRE9rZ3RCSTBuTzlWR3hoUDhubnVBZkp0bndHRjVQQ0ppTUl0VVJDaWVIZE1FMWVTeFVIMW55bXhRSE96WWtuVEJWN1o3S2tDdnRkbEdQRnMyalJNWFBTaWhkUncyTjBvZDJ4TDdjWA, :discljord.messaging.specs/major-variable-type :discljord.messaging.specs/interaction-token}}
2022-12-22T20:12:45.225Z ubuntu TRACE [discljord.messaging.impl:?] - Making request
2022-12-22T20:12:45.226Z ubuntu TRACE [discljord.messaging.impl:?] - Making request to aW50ZXJhY3Rpb246MTA1NTU3ODY1NjY5ODc5ODE5MDpFd2FrdDlRMGpwWWI2TlZYTDVPZ3ZhQXRBRE9rZ3RCSTBuTzlWR3hoUDhubnVBZkp0bndHRjVQQ0ppTUl0VVJDaWVIZE1FMWVTeFVIMW55bXhRSE96WWtuVEJWN1o3S2tDdnRkbEdQRnMyalJNWFBTaWhkUncyTjBvZDJ4TDdjWA with params {:body {"audit-reason":null,"content":"Search result returned no hits","flags":64}, :headers {Authorization Bot X, User-Agent DiscordBot (https://github.com/discljord/discljord, 1.3.1) , Content-Type application/json}}
2022-12-22T20:12:45.353Z ubuntu TRACE [discljord.messaging.impl:?] - Response: {:opts {:body {"audit-reason":null,"content":"Search result returned no hits","flags":64}, :headers {Authorization Bot X, User-Agent DiscordBot (https://github.com/discljord/discljord, 1.3.1) , Content-Type application/json}, :method :patch, :url https://discord.com/api/v9/webhooks/1055505408053215322/aW50ZXJhY3Rpb246MTA1NTU3ODY1NjY5ODc5ODE5MDpFd2FrdDlRMGpwWWI2TlZYTDVPZ3ZhQXRBRE9rZ3RCSTBuTzlWR3hoUDhubnVBZkp0bndHRjVQQ0ppTUl0VVJDaWVIZE1FMWVTeFVIMW55bXhRSE96WWtuVEJWN1o3S2tDdnRkbEdQRnMyalJNWFBTaWhkUncyTjBvZDJ4TDdjWA/messages/@original}, :body {"id": "1055578658313613363", "type": 20, "content": "Search result returned no hits", "channel_id": "771153425185636436", "author": {"id": "1055505408053215322", "username": "Doplarr", "avatar": null, "avatar_decoration": null, "discriminator": "9832", "public_flags": 0, "bot": true}, "attachments": [], "embeds": [], "mentions": [], "mention_roles": [], "pinned": false, "mention_everyone": false, "tts": false, "timestamp": "2022-12-22T20:12:43.845000+00:00", "edited_timestamp": null, "flags": 64, "components": [], "application_id": "1055505408053215322", "interaction": {"id": "1055578656698798190", "type": 2, "name": "request series", "user": {"id": "193851478299901965", "username": "sluzorz", "avatar": "a_2578799ee75044511c7e4b90172ce383", "avatar_decoration": null, "discriminator": "5806", "public_flags": 0}}, "webhook_id": "1055505408053215322"}, :headers {:date Thu, 22 Dec 2022 20:12:45 GMT, :x-content-type-options nosniff, :x-ratelimit-reset-after 0.399, :via 1.1 google, :server cloudflare, :x-ratelimit-bucket 3d2712a9e4fe17cc9d3fed4a8e672e5f, :report-to {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=DLKK2TPGft%2FmrtzbMLT5OCYTn5l08v90hMTo%2FD0NNI0ztzPPQH7knr8WWfp2SSwm0RqSpGQGzb3nXPg151QIe8178TixZxh%2F6VbFOZVBWmHDXoAxgRlGF0aswLwy"}],"group":"cf-nel","max_age":604800}, :cf-ray 77db839ead308cab-EWR, :strict-transport-security max-age=31536000; includeSubDomains; preload, :x-ratelimit-reset 1671739965.682, :alt-svc h3=":443"; ma=86400, h3-29=":443"; ma=86400, :content-type application/json, :x-ratelimit-limit 5, :content-encoding gzip, :x-ratelimit-remaining 4, :cf-cache-status DYNAMIC, :connection keep-alive, :nel {"success_fraction":0,"report_to":"cf-nel","max_age":604800}, :transfer-encoding chunked, :set-cookie __dcfduid=ff67a2f0823411edae3506e6d953901a; Expires=Tue, 21-Dec-2027 20:12:45 GMT; Max-Age=157680000; Secure; HttpOnly; Path=/,__sdcfduid=ff67a2f0823411edae3506e6d953901a85da350dc283754a41023f0fe73b24c48b261169671d115d83f07b05a6501245; Expires=Tue, 21-Dec-2027 20:12:45 GMT; Max-Age=157680000; Secure; HttpOnly; Path=/,__cfruid=8d97f5db727b12a3eb282710c3ec1ae314ba50d4-1671739965; path=/; domain=.discord.com; HttpOnly; Secure; SameSite=None}, :status 200}
kiranshila commented 1 year ago

Could you try with the full IP (local, probably) instead of localhost?

sjlu commented 1 year ago

Yup, that did the trick. Sonarr is on http://127.0.0.1:8989 while Radarr is on http://localhost:7878. Just a weird local DNS lookup issue then?

kiranshila commented 1 year ago

Wat. I hate networking :smiling_face_with_tear: I'm glad it's working.