Why am I getting an "Invalid Redirect" http error?


And also, yes, I am using roproxy.com, and I know the problems with using a public proxy. It shows roblox.com in the console, not too sure why, maybe because roproxy.com redirects to roblox.com when you try go to it online.

This is not only happening with avatars, its happening with catalog stuff and pretty much anything http related in my game.

I do not recommend using that endpoint for fetching the thumbnail of an avatar.

Use this endpoint for fetching the thumbnail of an avatar:

https://thumbnails.roblox.com/v1/users/avatar?userIds=1730345494&size=30x30&format=Png&isCircular=false

As usual, for the proxy, you would replace thumbnails.roblox.com with thumbnails.roproxy.com

1 Like

no errors are coming up now thankfully. im pretty sure now it wont load because the other stuff are broken.


this is another broken http request

What is the purpose of that endpoint?

Also, Roblox removed the avatar thumbnail endpoint completely, which is why it won’t work anymore.

see this:

was just about to reply about the fact i just found a new error about the thumbnail thing where now its a http 503 service unavailable. so thumbnails.roblox.com is gone too?

Definitely not gone.

If you’re getting a 503, that means the server for the thumbnails api is down right now. Which means you can’t use it.

Edit:

I am not getting a 503 Error:

i checked status.roblox.com and nothing is down though??
here is what the console said

And to clarify, are you sending the http request in studio?

nope, im playing my game on actual roblox, not studio

How are you sending the http request in game?

??? a server script sends a http request using httpservice. pretty sure httpservice doesnt just only work when you test in studio

Never mind. Perhaps I worded my sentence incorrectly.

Can I see the code you’re using to send the http request?

well its very complicated since it has alot of invokes and other stuff involved, but here it is:

local Event = game.ReplicatedStorage.Http
local HttpService = game:GetService(“HttpService”)

Event.OnServerInvoke = function(player, Type,Path,a,b,c,d,e,f,g)
Path = string.gsub(Path, “roblox.com”,“roproxy.com”)
print(Path)
if Type == “Post” then
local success, result = pcall(function()
return HttpService:PostAsync(Path,a,b,c,d,e,f,g)
end)
return {success, result}
elseif Type == “Get” then
local success, result = pcall(function()
return HttpService:GetAsync(Path)
end)
return {success, result}
end
end

local Event = game.ReplicatedStorage.Http
local HttpService = game:GetService(“HttpService”)

Event.OnServerInvoke = function(player, Type,Path,a,b,c,d,e,f,g)
–Path = Path:gsub(“[roblox.com](http://roblox.com)”,“[roproxy.com](http://roproxy.com)”)
Path = string.gsub(Path, “[roblox.com](http://roblox.com)”,“[roproxy.com](http://roproxy.com)”)
print(Path)
if Type == “Post” then
local success, result = pcall(function()
return HttpService:PostAsync(Path,a,b,c,d,e,f,g)
end)
return {success, result}
elseif Type == “Get” then
local success, result = pcall(function()
return HttpService:GetAsync(Path)
end)
return {success, result}
end
end

Can I see the script that Invokes the server as well

function Http.GetAssetAvatarFinalAsync(userId, width, height, format)

local result = rbxGetAsync(ThumbnailsUrl…‘v1/users/avatar?userIds=’…tostring(userId)…‘&size=30x30&format=Png&isCircular=false’)

return result

end

the rbxgetasync() function:

local function rbxGetAsync(path, returnRaw)
local result = FakeHttpService:InvokeServer(“Get”,path)
if not result[1] then
print(path, “rbxGetAsync() failed because”, result[2])
return nil
end

if returnRaw then
return result[2]
end
return decodeJSON(result[2])
end

the thumbnails url variable:

ThumbnailsUrl = string.gsub(BaseUrl, “https://www.”, “https://thumbnails.”)