Loading TextureID with Insert Service Issue

Loading TextureID Issue

Hello, Im trying to load a asset into a mesh with insertservice but I keep running into a issue. Roblox is returning an error “invalid argument #3 (string expected, got Instance)”. Is there any way to fix this?

game.ReplicatedStorage.Events.AddPotion.OnServerEvent:Connect(function(plr,color,perk,sc)
local colors = {
		Purple = "7106151441",
		Yellow = "7106435832",
		Green = "7106432255",
		Orange = "7106431788",
		Blue = "7106184564",
		Pink = "7106433027",
		Red = "7106434713"
	}
	
	local colorNOW
	for key, value in pairs(colors) do
		if key == color then
			colorNOW = value
		end
	end

newPotion.ImageLabel.ViewportFrame.Main.TextureID = game:GetService("InsertService"):LoadAsset(tostring(colorNOW))
end)

not sure but why are u converting colornow to a string, an assetid should be a number.

And which line is the error coming from?

ive tried making them numbers same error

the second last line, where the insert service line is

LoadAsset returns an instance you should remove the insert service part from you code as these are images that can be accessed using:

rbxassetid://(Insert Id Here)

Ive also tried that but it returns this error "Image https://assetdelivery.roblox.com/v1/asset?id=7106432255 failed to load. Error 403: Asset type does not match requested type "

Oh, is the asset a model or an image or a decal?

Try using rbxthumb://

https://developer.roblox.com/en-us/articles/Content

Im trying to put it as a texture id so its a image

Try using rbxthumb://
https://developer.roblox.com/en-us/articles/Content

newPotion.ImageLabel.ViewportFrame.Main.TextureID = "https://www.roblox.com/asset/?id="..colorNOW

ive tried doing this as all the color assets are posted to roblox but it still wont change and its not returning any errors.