Repository: Rapptz/discord.py

Issue:
await Interaction.original_message() returns NotFound
### Summary

If you use .original_message() on a Interaction that has not been responded too yet it'll fail with Not Found: Unknown Webhook

### Reproduction Steps

- Get some kind of interaction, for example from a button or app command
- Fetch the orignal message via `await Interaction.original_message()` before a response to the interaction was done



### Minimal Reproducible Code

```python
class Test(discord.ui.View):
    def __init__(self):
        super().__init__()

    @discord.ui.button(label="Test")
    async def test_button(self, button: discord.ui.Button, inter: discord.Interaction):
        m = await inter.original_message()
        await inter.response.send_message(m.jump_url)
```


### Expected Results

One of those:
- That it would raise an HTTPException
- That in the docs NotFound would be listed as an possible error and the return type would be Optional

### Actual Results

```
Traceback (most recent call last):
  File "c:\Users\Anwender\Documents\Code\Kade\env\lib\site-packages\discord\app_commands\commands.py", line 450, in _invoke_with_namespace
    return await self._callback(self.binding, interaction, **values)  # type: ignore
  File "c:\Users\Anwender\Documents\Code\Kade\extensions\utility.py", line 45, in message
    m = await inter.original_message()
  File "c:\Users\Anwender\Documents\Code\Kade\env\lib\site-packages\discord\interactions.py", line 286, in original_message
    data = await adapter.get_original_interaction_response(
  File "c:\Users\Anwender\Documents\Code\Kade\env\lib\site-packages\discord\webhook\async_.py", line 192, in request
    raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10015): Unknown Webhook

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "c:\Users\Anwender\Documents\Code\Kade\env\lib\site-packages\discord\app_commands\tree.py", line 816, in call
    await command._invoke_with_namespace(interaction, namespace)
  File "c:\Users\Anwender\Documents\Code\Kade\env\lib\site-packages\discord\app_commands\commands.py", line 469, in _invoke_with_namespace
    raise CommandInvokeError(self, e) from e
discord.app_commands.errors.CommandInvokeError: Command 'message' raised an exception: NotFound: 404 Not Found (error code: 10015): Unknown Webhook
```

### Intents

All Intents

### System Information

- Python v3.10.1-final
- discord.py v2.0.0-alpha
    - discord.py pkg_resources: v2.0.0a3849+g6def5c9
- aiohttp v3.7.4.post0
- system info: Windows 10 10.0.19043

### Checklist

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

### Additional Context

_No response_


Discussion:
`Interaction.original_message()` returns a [InteractionMessage](https://discordpy.readthedocs.io/en/master/interactions/api.html#discord.InteractionMessage) which doesn't have a `.jump_url` attribute.
> `Interaction.original_message()` returns a [InteractionMessage](https://discordpy.readthedocs.io/en/master/interactions/api.html#discord.InteractionMessage) which doesn't have a `.jump_url` attribute.

It does since it itherates from [Message](https://discordpy.readthedocs.io/en/master/interactions/api.html#discord.Message)

Resolving patch:
diff --git a/discord/interactions.py b/discord/interactions.py
--- a/discord/interactions.py
+++ b/discord/interactions.py
@@ -255,9 +255,10 @@ async def original_message(self) -> InteractionMessage:
 
         Fetches the original interaction response message associated with the interaction.
 
-        If the interaction response was :meth:`InteractionResponse.send_message` then this would
-        return the message that was sent using that response. Otherwise, this would return
-        the message that triggered the interaction.
+        If the interaction response was a newly created message (i.e. through :meth:`InteractionResponse.send_message`
+        or :meth:`InteractionResponse.defer`, where ``thinking`` is ``True``) then this returns the message that was sent
+        using that response. Otherwise, this returns the message that triggered the interaction (i.e.
+        through a component).
 
         Repeated calls to this will return a cached value.
 
@@ -267,6 +268,8 @@ async def original_message(self) -> InteractionMessage:
             Fetching the original response message failed.
         ClientException
             The channel for the message could not be resolved.
+        NotFound
+            The interaction response message does not exist.
 
         Returns
         --------
@@ -342,6 +345,8 @@ async def edit_original_message(
         -------
         HTTPException
             Editing the message failed.
+        NotFound
+            The interaction response message does not exist.
         Forbidden
             Edited a message that is not yours.
         TypeError
@@ -393,6 +398,8 @@ async def delete_original_message(self) -> None:
         -------
         HTTPException
             Deleting the message failed.
+        NotFound
+            The interaction response message does not exist or has already been deleted.
         Forbidden
             Deleted a message that is not yours.
         """


Test patch: