Discord error 50024: Cannot execute action on this channel type
Last verified against Discord Developer Docs - Opcodes and status codes
Cannot execute action on this channel typeWhat error 50024 means
The endpoint you called is valid in general but not for the type of channel you passed. Discord has more than a dozen channel types and many operations are type-specific: you cannot start a public thread from a message in a voice channel, set available_tags on a text channel, follow a non-announcement channel, create a stage instance in a voice channel, or set a bitrate on a text channel.
This differs from 50008, which is specifically about sending messages where messages are not allowed. 50024 covers every other type mismatch. It is the code you get when a user picks a channel from a dropdown that was not restricted by type, or when a feature built for text channels is pointed at a forum.
What it looks like
{
"message": "Cannot execute action on this channel type",
"code": 50024
}Why it happens
- Thread creation on a channel type that does not support threads (voice, category, stage)
- Modify Channel with fields that only apply to another type (bitrate on text, topic on voice, tags on non-forum)
- Follow Announcement Channel called on a regular text channel
- Creating a webhook in a type that does not support them
- Stale type in your cache after an admin converted a channel (for example text to announcement)
How to fix Discord error 50024
- 1Fetch the channel (GET /channels/{id}) and branch on type before choosing the endpoint or payload
- 2Restrict slash-command CHANNEL options with channel_types so users can only choose compatible channels
- 3Send only the fields valid for that type in PATCH requests; strip the rest
- 4Refresh cached channel data on CHANNEL_UPDATE
How to stop it recurring
Encode channel-type capabilities in one table in your code (which types accept threads, webhooks, slowmode, tags, and so on) and consult it before calling the API. Validate user-selected channels against that table at option-parse time so the error never reaches Discord.
Type mismatches are configuration bugs, so catch them at configuration time: validate the channel a user selects the moment they select it, against both type and the bot's permissions there. Channel-type fields and their valid ranges are on the Discord limits page; the message-sending special case of this error is 50008.
Official reference: Discord Developer Docs - Opcodes and status codes. See all Discord error codes or the Discord limits and quotas.
Related codes
- 50008: Cannot send messages in a non-text channelCannot send messages in a non-text channel
- 50003: Cannot execute action on a DM channelCannot execute action on a DM channel
- 220003: Webhooks can only create threads in forum channelsWebhooks can only create threads in forum channels
- 40061: Tag names must be uniqueTag names must be unique
Error 50024 - quick answers
What does Discord error 50024 mean?
The endpoint you called is valid in general but not for the type of channel you passed. Discord has more than a dozen channel types and many operations are type-specific: you cannot start a public thread from a message in a voice channel, set available_tags on a text channel, follow a non-announcement channel, create a stage instance in a voice channel, or set a bitrate on a text channel.
How do I fix Discord error 50024?
1. Fetch the channel (GET /channels/{id}) and branch on type before choosing the endpoint or payload 2. Restrict slash-command CHANNEL options with channel_types so users can only choose compatible channels 3. Send only the fields valid for that type in PATCH requests; strip the rest 4. Refresh cached channel data on CHANNEL_UPDATE
Should I retry after error 50024?
No. Retrying the same request produces the same error; the condition has to be fixed first. Treat it as a permanent failure for that message and surface it, rather than looping.
Stop debugging Discord by hand
Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.