JDA
JDA copied to clipboard
Error while Intercepting failed requests
General Troubleshooting
- [X] I have checked for similar issues on the Issue-tracker.
- [X] I have checked for PRs that might already address this issue.
Version of JDA
v5.1.0
Expected Behaviour
I try to log all requests from JDA to discord because I get sometimes a globalban (from cloudflare). They say that they count "401", "403" and "429" errors against me, so I wrote the following code... (see code example)
Code Example for Reproduction Steps
Interceptor interceptor = new Interceptor() {
@NotNull
@Override
public Response intercept(@NotNull Chain chain) throws IOException {
Response response = chain.proceed(chain.request());
int statusCode = response.code();
if (statusCode == 401 || statusCode == 403 || statusCode == 429) {
System.out.println("HTTP Status Code: " + statusCode);
System.out.println("URL: " + response.request().url());
}
return response;
}
};
final JDA core = core = JDABuilder
.create(getToken(), getEnableIntents())
.setHttpClientBuilder(IOUtil.newHttpClientBuilder().addInterceptor(interceptor))
.build();
Code for JDABuilder or DefaultShardManagerBuilder used
final JDA core = core = JDABuilder
.create(getToken(), getEnableIntents())
.setHttpClientBuilder(IOUtil.newHttpClientBuilder().addInterceptor(interceptor))
.build();
Exception or Error
java.lang.IllegalStateException: An error occurred while parsing the response for a RestAction
at net.dv8tion.jda.api.requests.Response.<init>(Response.java:81)
at net.dv8tion.jda.api.requests.Response.<init>(Response.java:92)
at net.dv8tion.jda.internal.requests.Requester$WorkTask.handleResponse(Requester.java:442)
at net.dv8tion.jda.internal.requests.Requester$WorkTask.access$300(Requester.java:378)
at net.dv8tion.jda.internal.requests.Requester.execute(Requester.java:245)
at net.dv8tion.jda.internal.requests.Requester.execute(Requester.java:157)
at net.dv8tion.jda.internal.requests.Requester.execute(Requester.java:140)
at net.dv8tion.jda.internal.requests.Requester$WorkTask.execute(Requester.java:406)
at net.dv8tion.jda.api.requests.SequentialRestRateLimiter$Bucket.execute(SequentialRestRateLimiter.java:477)
at net.dv8tion.jda.api.requests.SequentialRestRateLimiter$Bucket.run(SequentialRestRateLimiter.java:517)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1570)
Caused by: java.io.IOException: closed
at okio.RealBufferedSource$inputStream$1.read(RealBufferedSource.kt:157)
at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:291)
at java.base/java.io.BufferedInputStream.implRead(BufferedInputStream.java:325)
at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:312)
at java.base/java.util.zip.CheckedInputStream.read(CheckedInputStream.java:59)
at java.base/java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:277)
at java.base/java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:269)
at java.base/java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:175)
at java.base/java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:79)
at java.base/java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:91)
at net.dv8tion.jda.internal.utils.IOUtil.getBody(IOUtil.java:279)
at net.dv8tion.jda.api.requests.Response.<init>(Response.java:77)
... 12 common frames omitted