discord-jda / JDA

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

Alpha.8 Second button click and onwards of the same action row in a guild causes unexpected error #2041

Closed ColaIan closed 2 years ago

ColaIan commented 2 years ago

General Troubleshooting

Bug Report

Second button click and onwards of the same action row in a guild causes unexpected error, unless the bot is restarted

Expected Behavior

No exceptions I guess, it works on alpha.6

Code Example or Reproduction Steps

  1. Start bot
  2. First button click, no exception
  3. Second click and onwards of the same action row causes exception

Code for JDABuilder or DefaultShardManagerBuilder Used

        final var shardBuilder = DefaultShardManagerBuilder.createDefault(configManager.getBotToken());
        shardBuilder.setShardsTotal(configManager.getShardsTotal());
        shardBuilder.setShards(configManager.getShardsStartId(),
                configManager.getShardsStartId()
                        + configManager.getShardsTotal() - 1);
        shardBuilder.setRequestTimeoutRetry(true);

        // Enable Gateway Intents
        shardBuilder.enableIntents(GatewayIntent.GUILD_MEMBERS);
        shardBuilder.enableIntents(GatewayIntent.GUILD_INVITES);
        shardBuilder.enableIntents(GatewayIntent.GUILD_PRESENCES);

        // Enable Cache Flags
        shardBuilder.enableCache(CacheFlag.CLIENT_STATUS);

Exception or Error


[2022-02-23T09:20:22,070 ERROR] JDA [0 / 1] MainWS-ReadThread: n.d.j.i.r.WebSocketClient - Got an unexpected error. Please redirect the following message to the devs:
    JDA 5.0.0-alpha.8_1b1db83
    INTERACTION_CREATE -> {"data":{"component_type":2,"custom_id":"teapot:ai_moderation:delete:945972196768096267"},"member":{"premium_since":null,"nick":null,"joined_at":"2020-01-17T12:57:48.453000+00:00","communication_disabled_until":null,"permissions":"2199023255551","roles":["854744024425693184","667714792341110794","756562446101119067","898091513903456276"],"pending":false,"deaf":false,"mute":false,"avatar":null,"user":{"public_flags":128,"id":"216127021028212737","avatar":"675566f67475709e8d8f3d0f2f059b74","username":"ColaIan","discriminator":"2974"},"is_pending":false},"guild_id":"667714189254459414","id":"945973350319161384","type":3,"message":{"mention_everyone":false,"pinned":false,"components":[{"components":[{"custom_id":"teapot:ai_moderation:delete:945972196768096267","style":1,"label":"Delete","type":2},{"custom_id":"teapot:ai_moderation:timeout:216127021028212737","style":2,"label":"Timeout 1m","type":2},{"custom_id":"teapot:ai_moderation:kick:216127021028212737","style":4,"label":"Kick","type":2},{"custom_id":"teapot:ai_moderation:ban:216127021028212737","style":4,"label":"Ban","type":2}],"type":1}],"attachments":[],"author":{"bot":true,"public_flags":0,"id":"792631146138697728","avatar":"853351de003b4a839cbbed1525fb9599","username":"Teapot Development","discriminator":"3256"},"flags":0,"type":0,"mention_roles":[],"edited_timestamp":null,"content":"","tts":false,"mentions":[],"id":"945972203386720296","embeds":[{"color":15644169,"description":"Toxicity Detected: 0.94992846\nProfanity Detected: 0.98340124\nObscene Detected (Alpha): 0.9892319","type":"rich","title":"AI Analysis Results","fields":[{"inline":false,"name":"Sender","value":"<@216127021028212737> (216127021028212737)"},{"inline":false,"name":"Message ID","value":"945972196768096267"},{"inline":false,"name":"Content","value":"shit"}],"url":"https://discord.com/channels/667714189254459414/905761804511219744/945972196768096267"}],"channel_id":"933564282799521893","timestamp":"2022-02-23T09:15:48.601000+00:00"},"locale":"en-US","version":1,"channel_id":"933564282799521893","application_id":"792631146138697728","token":"aW50ZXJhY3Rpb246OTQ1OTczMzUwMzE5MTYxMzg0OnlUcjdsb25NVVl4ZVpOME5DUlJTcWZqN1VZZUpDUlA4RHczMU1TeFk4ZExyelpKZU5XTTVhdVB4dEJ1b1o4b3BqOEcyVnAyUUtMa1h0MEt3bVdIYUNwdVRVaUNzU2sxSjJ4M2hyamFXalo0c0JNenFObTFJeW1QVmswYWo2bkF6","guild_locale":"en-US"}
java.lang.IllegalArgumentException: MISSING_CHANNEL
    at net.dv8tion.jda.internal.entities.EntityBuilder.createMessageGuildChannel(EntityBuilder.java:1382) ~[JDA-5.0.0-alpha.8.jar:5.0.0-alpha.8]
    at net.dv8tion.jda.internal.interactions.component.ComponentInteractionImpl.<init>(ComponentInteractionImpl.java:48) ~[JDA-5.0.0-alpha.8.jar:5.0.0-alpha.8]
    at net.dv8tion.jda.internal.interactions.component.ButtonInteractionImpl.<init>(ButtonInteractionImpl.java:33) ~[JDA-5.0.0-alpha.8.jar:5.0.0-alpha.8]
    at net.dv8tion.jda.internal.handle.InteractionCreateHandler.handleAction(InteractionCreateHandler.java:112) ~[JDA-5.0.0-alpha.8.jar:5.0.0-alpha.8]
    at net.dv8tion.jda.internal.handle.InteractionCreateHandler.handleInternally(InteractionCreateHandler.java:69) ~[JDA-5.0.0-alpha.8.jar:5.0.0-alpha.8]
    at net.dv8tion.jda.internal.handle.SocketHandler.handle(SocketHandler.java:36) ~[JDA-5.0.0-alpha.8.jar:5.0.0-alpha.8]
    at net.dv8tion.jda.internal.requests.WebSocketClient.onDispatch(WebSocketClient.java:952) [JDA-5.0.0-alpha.8.jar:5.0.0-alpha.8]
    at net.dv8tion.jda.internal.requests.WebSocketClient.onEvent(WebSocketClient.java:839) [JDA-5.0.0-alpha.8.jar:5.0.0-alpha.8]
    at net.dv8tion.jda.internal.requests.WebSocketClient.handleEvent(WebSocketClient.java:817) [JDA-5.0.0-alpha.8.jar:5.0.0-alpha.8]
    at net.dv8tion.jda.internal.requests.WebSocketClient.onBinaryMessage(WebSocketClient.java:991) [JDA-5.0.0-alpha.8.jar:5.0.0-alpha.8]
    at com.neovisionaries.ws.client.ListenerManager.callOnBinaryMessage(ListenerManager.java:385) [nv-websocket-client-2.14.jar:?]
    at com.neovisionaries.ws.client.ReadingThread.callOnBinaryMessage(ReadingThread.java:276) [nv-websocket-client-2.14.jar:?]
    at com.neovisionaries.ws.client.ReadingThread.handleBinaryFrame(ReadingThread.java:996) [nv-websocket-client-2.14.jar:?]
    at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:755) [nv-websocket-client-2.14.jar:?]
    at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:108) [nv-websocket-client-2.14.jar:?]
    at com.neovisionaries.ws.client.ReadingThread.runMain(ReadingThread.java:64) [nv-websocket-client-2.14.jar:?]
    at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45) [nv-websocket-client-2.14.jar:?]
ColaIan@Teapot-DEV => ```
MinnDevelopment commented 2 years ago

This should be fixed in #2043

This is caused by a bug in the discord api: discord/discord-api-docs#4557

ColaIan commented 2 years ago

Since I falled back to Alpha.6, I got another error when clicking a reaction in DM

[2022-02-24T03:29:45,497 ERROR] JDA [0 / 1] MainWS-ReadThread: n.d.j.i.r.WebSocketClient - Got an unexpected error. Please redirect the following message to the devs:
        JDA 5.0.0-alpha.6_094f41a
        MESSAGE_REACTION_ADD -> {"emoji":{"name":"1️⃣","id":null},"user_id":"216127021028212737","message_id":"946246714128478238","channel_id":"902179035940003930"}
java.lang.NullPointerException: Cannot invoke "net.dv8tion.jda.api.entities.User.getIdLong()" because "this.user" is null
        at net.dv8tion.jda.internal.entities.PrivateChannelImpl.updateUser(PrivateChannelImpl.java:188) ~[Teapot.jar:0.0.1]
        at net.dv8tion.jda.internal.entities.PrivateChannelImpl.getUser(PrivateChannelImpl.java:55) ~[Teapot.jar:0.0.1]
        at net.dv8tion.jda.internal.entities.EntityBuilder.createPrivateChannel(EntityBuilder.java:1202) ~[Teapot.jar:0.0.1]
        at net.dv8tion.jda.internal.entities.EntityBuilder.createPrivateChannel(EntityBuilder.java:1189) ~[Teapot.jar:0.0.1]
        at net.dv8tion.jda.internal.handle.MessageReactionHandler.handleInternally(MessageReactionHandler.java:140) ~[Teapot.jar:0.0.1]
        at net.dv8tion.jda.internal.handle.SocketHandler.handle(SocketHandler.java:36) ~[Teapot.jar:0.0.1]
        at net.dv8tion.jda.internal.requests.WebSocketClient.onDispatch(WebSocketClient.java:952) [Teapot.jar:0.0.1]
        at net.dv8tion.jda.internal.requests.WebSocketClient.onEvent(WebSocketClient.java:839) [Teapot.jar:0.0.1]
        at net.dv8tion.jda.internal.requests.WebSocketClient.handleEvent(WebSocketClient.java:817) [Teapot.jar:0.0.1]
        at net.dv8tion.jda.internal.requests.WebSocketClient.onBinaryMessage(WebSocketClient.java:991) [Teapot.jar:0.0.1]
        at com.neovisionaries.ws.client.ListenerManager.callOnBinaryMessage(ListenerManager.java:385) [Teapot.jar:0.0.1]
        at com.neovisionaries.ws.client.ReadingThread.callOnBinaryMessage(ReadingThread.java:276) [Teapot.jar:0.0.1]
        at com.neovisionaries.ws.client.ReadingThread.handleBinaryFrame(ReadingThread.java:996) [Teapot.jar:0.0.1]
        at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:755) [Teapot.jar:0.0.1]
        at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:108) [Teapot.jar:0.0.1]
        at com.neovisionaries.ws.client.ReadingThread.runMain(ReadingThread.java:64) [Teapot.jar:0.0.1]
        at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45) [Teapot.jar:0.0.1]

Is this related or is this fixed in a newer version?

MinnDevelopment commented 2 years ago

Is this related or is this fixed in a newer version?

Yes. #2035