discord-jda / JDA

Java wrapper for the popular chat & VOIP service: Discord https://discord.com
Apache License 2.0
4.29k stars 739 forks source link

okhttp3.Response.close()V NoSuchMethod? RateLimitWorker #2536

Closed DevDipin closed 12 months ago

DevDipin commented 1 year ago

General Troubleshooting

Expected Behaviour

I get this error whenever I do a command, or when the bot starts up. The bot works fine (by the looks of it), however you get a long error message in console on startup and anytime anyone executes a command.

Code Example for Reproduction Steps

Just startup bot, and then get the OkHttp3 error

Code for JDABuilder or DefaultShardManagerBuilder used

public static JDABuilder getBuilder(String token){
        JDABuilder builder = JDABuilder.createDefault(token)
                .setStatus(OnlineStatus.DO_NOT_DISTURB)
                .disableCache(CacheFlag.VOICE_STATE, CacheFlag.EMOJI)
                .addEventListeners(new SyncCommand());
        if(!OxygenBot.getInstance().getConfiguration().getConfiguration().getString("discord-bot.activity.message").equals("")) builder.setActivity(Activity.playing(OxygenBot.getInstance().getConfiguration().getConfiguration().getString("discord-bot.activity.message")));

        return builder;
    }

        DiscordBuilder.init(this);
        discordBot = new DiscordBot(OxygenBot.getInstance().getConfiguration().getConfiguration().getString("discord-bot.token"));
        if(!discordBot.start()){
            debug_message("You have specified a invalid discord bot token. The plugin will NOT work properly.");
            return;
        }
        jda = discordBot.getJda();
        try {
            guild = jda.awaitReady().getGuildById(OxygenBot.getInstance().getConfiguration().getConfiguration().getString("server.server-id"));
        } catch (InterruptedException e) {
            debug_message("There was an error starting the bot. Please try again.");
            e.printStackTrace();
            return;
        }

        if(guild == null) {
            debug_message("You have specified a invalid guild server ID. The plugin will NOT work properly.");
            return;
        }

Exception or Error

[13:31:43 WARN]: [JDA RateLimit-Worker 1] ERROR RestRateLimiter - Encountered exception trying to execute request
[13:31:43 WARN]: java.lang.NoSuchMethodError: okhttp3.Response.close()V
[13:31:43 WARN]:        at net.dv8tion.jda.internal.requests.Requester.execute(Requester.java:281)
[13:31:43 WARN]:        at net.dv8tion.jda.internal.requests.Requester.execute(Requester.java:145)
[13:31:43 WARN]:        at net.dv8tion.jda.internal.requests.Requester.execute(Requester.java:128)
[13:31:43 WARN]:        at net.dv8tion.jda.internal.requests.Requester$WorkTask.execute(Requester.java:378)
[13:31:43 WARN]:        at net.dv8tion.jda.api.requests.SequentialRestRateLimiter$Bucket.execute(SequentialRestRateLimiter.java:446)
[13:31:43 WARN]:        at net.dv8tion.jda.api.requests.SequentialRestRateLimiter$Bucket.run(SequentialRestRateLimiter.java:490)
[13:31:43 WARN]:        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[13:31:43 WARN]:        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[13:31:43 WARN]:        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
[13:31:43 WARN]:        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
[13:31:43 WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[13:31:43 WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[13:31:43 WARN]:        at java.lang.Thread.run(Thread.java:750)

[13:31:45 WARN]: [JDA RateLimit-Worker 2] ERROR RestRateLimiter - Encountered exception trying to execute request
[13:31:45 WARN]: java.lang.NoSuchMethodError: okhttp3.Response.close()V
[13:31:45 WARN]:        at net.dv8tion.jda.internal.requests.Requester.execute(Requester.java:281)
[13:31:45 WARN]:        at net.dv8tion.jda.internal.requests.Requester.execute(Requester.java:145)
[13:31:45 WARN]:        at net.dv8tion.jda.internal.requests.Requester.execute(Requester.java:128)
[13:31:45 WARN]:        at net.dv8tion.jda.internal.requests.Requester$WorkTask.execute(Requester.java:378)
[13:31:45 WARN]:        at net.dv8tion.jda.api.requests.SequentialRestRateLimiter$Bucket.execute(SequentialRestRateLimiter.java:446)
[13:31:45 WARN]:        at net.dv8tion.jda.api.requests.SequentialRestRateLimiter$Bucket.run(SequentialRestRateLimiter.java:490)
[13:31:45 WARN]:        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[13:31:45 WARN]:        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[13:31:45 WARN]:        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
[13:31:45 WARN]:        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
[13:31:45 WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[13:31:45 WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[13:31:45 WARN]:        at java.lang.Thread.run(Thread.java:750)
DevDipin commented 1 year ago

If you need anything else, please let me know. :)

Andre601 commented 1 year ago

Did you actually shade in your dependencies?

freya022 commented 1 year ago

You need to send us your build file (pom.xml / build.gradle)

DevDipin commented 1 year ago

You need to send us your build file (pom.xml / build.gradle)

Sorry.

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0
<groupId>dev.hely.discordbot</groupId>
<artifactId>OxygenBot</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
    <author>Hely Development</author>
    <mainClass>dev.hely.discordbot.OxygenBot</mainClass>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
    <repository>
        <id>dv8tion</id>
        <name>m2-dv8tion</name>
        <url>https://m2.dv8tion.net/releases</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.spigotmc</groupId>
        <artifactId>spigot-api</artifactId>
        <version>1.8.8-R0.1-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>dev.hely.core</groupId>
        <artifactId>Oxygen</artifactId>
        <version>1.0-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>dev.hely.lib</groupId>
        <artifactId>Library</artifactId>
        <version>2.3-SNAPSHOT</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>net.dv8tion</groupId>
        <artifactId>JDA</artifactId>
        <version>5.0.0-beta.13</version>
    </dependency>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.12.10</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.8</version>
        <scope>provided</scope>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.2</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <createDependencyReducedPom>false</createDependencyReducedPom>
                        <relocations>
                            <relocation>
                                <pattern>com.mongodb</pattern>
                                <shadedPattern>dev.hely.discordbot.modules.database.mongo.library</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>dev.hely.lib</pattern>
                                <shadedPattern>dev.hely.discordbot.library</shadedPattern>
                            </relocation>
                        </relocations>
                        <finalName>Oxygen-DiscordBot-Addon</finalName>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>8</source>
                <target>8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

freya022 commented 1 year ago

Can you run mvn dependency:tree ? one of your dependencies must be using an old okhttp version

DevDipin commented 1 year ago

That was the issue! Thank you!