WebhookProxy | Discord webhooks go brrrrrrr

Just started working for me but give it a few minutes and it’ll go on and off again.

Why does it work for some people consistently but for some it doesn’t?

It seems to be a roblox issue.

Hi all, have been keeping track of this.

4xx errors that don’t have proxy:true in the response are NOT from my end. I always tag my responses to make it clear, so when you use RequestAsync and get the response body you should be able to see what’s happening in that regard. Please make sure you are actually reading the response bodies and not just blindly sending stuff over, as it makes issue tracking very difficult.

5xx errors are my fault, not yours, and I have already got stuff in place to resolve this. There might’ve been a blip a little bit ago since I was doing all of this. My bad.

If it’s a Roblox issue there won’t be a lot I can do, but you can try to help me help you by reading what is sent back to you rather than blindly firing and forgetting. Cheers.

1 Like

are the ip bans shared across game servers? I recently started using the web hook proxy and everything looked like it was working fine for like a week, but recently it’s been returning the 10+ invalid requests IP ban message, locking it out for like 3 whole days
I can’t tell if I’m doing something wrong, I’ve made my game back off after getting that message but even after waiting the whole three days it seems like it gets blocked again? so I’m not sure what’s going on

They are, unfortunately, shared across gameservers, because certain bad actors did webhook searches through my proxy (essentially probing for tons of non-existent webhooks to spam or something, I don’t really know), so I had to add restrictions to reduce the behaviour. The IP bans however are not permanent and will be lifted after a couple of days.

I have noticed however there has been a severe uptick in the amount of IP addresses being banned by the service, so I do believe that they might’ve started this behaviour again. I will attempt to write a workaround specifically for Roblox gameservers that will reduce this since it seems to be isolated to a few games, and in the meantime I will remove all the IP bans that have occurred. Nonetheless, the actual service is fine. Please blame the bad actors that are abusing Roblox servers, and consider hosting your own instance instead of using the public one if it’s a critical piece of infrastructure for you.

Also, on a sidenote, I’ve started taking a heavy handed policy to large games that are using the service and not complying to the rules. Games will now be blocked by Cloudflare if they spam the service and make it unusable for others, and I will stop reaching out to game developers to resolve the issue. I used to approach game developers in the most private way possible, but this has now become unreasonable due to the number of games that are causing issues. If your game is caught in this, please message me privately on the DevForum.

1 Like

Is this service discontinued? I am repeatedly receiving HTTP 400 errors for a bad request. I’m unsure if its an issue with my code formatting or the proxy host.

My code should work, so I think it might be an issue on your end but I’m not sure.

function module:LogBankDeposit(info)
print(info)
local HEXCOLOR = 0x545151
local System = “Community Bank Deposit Logging Panel”
– local PIC = " "

local data = {
	['embeds'] = {
		{
			color = HEXCOLOR,
			title = "Community Logging",
			description = System,
			--thumbnail = {
			--	url = PIC,
			--},
			fields = {
				{
					name = "Player: " .. info["Player"],
					value = "Amount Deposited: " .. info["Amount Deposited"],
				}

			},
			footer = {
				text = "____________________",
				--icon_url = PIC,
			},
		},
	},
}

local https = game:GetService("HttpService")
local Key = depositLogs

local newdata = https:JSONEncode(data)
https:PostAsync(Key,newdata)

end

1 Like

It isn’t discontinued.
But perhaps you are ratelimited.
Are you using /queue?

4xx codes are end user fault. If you log the response body you will get a reason why. Alternatively, validate it by using a client like Hoppscotch, Insomnia, or Postman.

yeah i def don’t know what’s going on
when i test it from Studio it returns 200 OK, Queued successfully, but it never sends anything to the channel
all of the actual servers still fail to send anything and just get ip ban errors
i think something might be up with the queue endpoint???

Still investigating this sadly. Full-time job and hobby projects having issues don’t mix well, but my bets are that someone is just spamming the hell out of the proxy to get it banned on purpose.

Can’t be, I’m still using it for my own software off platform and it works fine. A successful queue does not always mean a successful request - make sure your requests work first before using the queue system.

1 Like

ohhh my god i figured it out :sob:
so apparently you HAVE to pass the [“Content-Type”]: “application/json” header now, otherwise it gives you the “No body provided. The proxy only accepts valid JSON bodies.” error
it used to not care about if you passed it or not before… i dunno why it’s suddenly needed now, maybe some library updated and became more strict???
either way it seems like my webhook is sending stuff properly now, i’ll keep you updated if it gets a random ban or anything

Heh. What a funny bug, although both sides (Roblox and the proxy) required that for a long time, so I’m not quite sure why it would’ve worked without.

1 Like

This is such an unneeded response, let people use what they’re used to/comfortable with.

I made the switch to guilded just for the use of logs to find out you are unable to use CTRL + F to search up webhooks.

Literally works with normal messages but not webhooks.

Is there an easy way to clear all blacklisted webhooks and or IP’s and or edit how long webhooks are blacklisted for if they are rate limited?
I have tried using DB Browser for SQlite but it saves in proxy2.db.sqbpro format.

local webhook = (yourUrl)

sendFeedback.OnServerEvent:Connect(function(player, feedback)
	local formatted = httpService:JSONEncode({
		content = chat:FilterStringAsync(feedback, player, player);
		username = (player.Name .. ' - [' .. player.UserId .. ']');
		avatar_url = ('https://www.roblox.com/headshot-thumbnail/image?userId=' .. player.UserId .. '&width=420&height=420&format=png');
	})
	httpService:PostAsync(webhook, formatted)
end)

Discord sends the webhook normally (only within’ Studio)
But when I used your method it won’t send webhooks at all.

This is far from enough information for me to work out what’s going on. What are you getting in response? The proxy returns error reasons in case something went wrong.

Where should I check the proxy? I’m using your converter to send webhooks. Studio does not report any errors, but I used other websites and they return error 403 everytime they try to send it to Discord.

I actually think your webhook went through, but like 10 hours later.

I know a lot of webhook proxies dont allow join logs of any kind.
In my case I actually have a system that automatically rate limits them in-game. With this system in place am I safe to use this proxy for whatever kind of webhooks I desire?

I used this module I found called Voyager to setup command logs, and I thought I was in the clear since I don’t make 10 requests per second or anything crazy like that, as seen here:

Just today I got hit with a 403, so don’t use it for anything like join logs.
Honestly just make an ingame gui if you absolutely need them.

2 Likes