discord / discord-api-docs

Official Discord API Documentation
https://discord.com/developers/docs/intro
Other
5.99k stars 1.26k forks source link

Misleading API response for Cloudflare blocked requests #6473

Open hackermondev opened 1 year ago

hackermondev commented 1 year ago

Description

Discord recently changed their Cloudflare configuration to return a JSON error when the user is Cloudflare blocked instead of the HTML Cloudflare page.

Example response:

{
    "message": "internal network error",
    "code": 40333
}

This error is misleading, "internal network error" might make someone think Discord is having issues with their API.

Steps to Reproduce

Discord blocks Bot API requests with browser user agents, you can reproduce it with this command:

curl 'https://canary.discord.com/api/v9/channels/1051241605241262192/messages?limit=50' \
  -H 'authority: canary.discord.com' \
  -H 'authorization: Bot 1' \
  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) discord/0.0.314 Chrome/108.0.5359.215 Electron/22.3.25 Safari/537.36' \
  --compressed

Expected Behavior

The API should return a more informative error like "Request blocked"

Current Behavior

{
    "message": "internal network error",
    "code": 40333
}

Screenshots/Videos

No response

Client and System Information

N/A

totallytavi commented 9 months ago

I can confirm this is still occurring. I recently encountered this when trying to send requests from Roblox through a proxy and blindly copied the User-Agent.

kiecooboi commented 7 months ago

me 2

BokononLives commented 1 month ago

Whether or not the error message gets updated, I would like to see this user-agent requirement added to public documentation (if it isn't already) if it is here to stay. I encountered this issue, and it was tricky to identify. I hadn't considered that my PowerShell script was automatically supplying a user agent header containing "Mozilla" even when I didn't specify one - so it was not obvious at first what "40333 - internal network error" was trying to tell me. Thank you for your consideration!

OoLunar commented 1 week ago

More information on why a request is blocked is highly desirable.