Skip to content

inconsistency with message editing after interaction token expires #627

Open
@onerandomusername

Description

@onerandomusername

Summary

messages sent with Inter.followup.send cannot be edited after 15 minutes

Reproduction Steps

see code below

Minimal Reproducible Code

await inter.send('h')
m = await inter.followup.send('h')
await asyncio.sleep(60 * 15)
await m.edit(content='j')

Expected Results

Message could be edited, or at least was not a token expired error.

Actual Results

The message could not be edited.

Intents

not relevant

System Information

disnake version: 2.6.0a4267+g1c9ddd8c

Checklist

  • I have searched the open issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my token from display, if visible.

Additional Context

Related to #626

There is already handling in InteractionMessage which handles these cases, except that InteractionMessage uses different underlying methods than Webhooks use.

To solve this, we can explore several different solutions. For starters, we can consider a new InteractionWebhook class (which we could make use HTTPClient instead of the current Webhook implementation. This would also enable missing proxy support). The next part would be a possible InteractionWebhookMessage class which would a custom edit and delete implementation to include webhook token expiry and fallback to the bot token if they have expired.

One other possible solution would be implementing this support onto the existing Webhook and WebhookMessage class, in order to support editing followups even after the token expires.

@shiftinv @Chromosomologist

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is needed

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions