WebGL Outline Shader not showing in Build

Hello!, i am not sure this is the right place to post this as this is my first post.
I am new to shaders and created outline shaders based on a tutorial and now trying to deploy to GitHub. The outline is works and is showing in the editor but when built does not show. When i try to highlight in the build, the error produced is [.WebGL-000012A00DB5F800] GL_INVALID_OPERATION: Feedback loop formed between Framebuffer and active Texture in the debugger.

Outline in Editor(orange = selected outline/ yellow = highlight outline):
Screenshot 2023-11-01 113221

The error produced in developer debug:

The shader code:

Shader "Unlit/ApplyOutline"
{
    Properties
    {
        [HideInInspector]_MainTex ("Texture", 2D) = "white" {}
        _OutlineWidth ("OutlineWidth", Range(0, 1)) = 1
        _OutlineColor ("OutlineColor", Color) = (1, 1, 1, 1)
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            // make fog work
            #pragma multi_compile_fog

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                UNITY_FOG_COORDS(1)
                float4 vertex : SV_POSITION;
            };
            
            sampler2D _MainTex;
            float4 _MainTex_ST;
            
            float _OutlineWidth;
            float4 _OutlineColor;
            sampler2D _SelectionBuffer;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                UNITY_TRANSFER_FOG(o,o.vertex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                //sample directions
                #define DIV_SQRT_2 0.70710678118
                float2 directions[8] = {float2(1, 0), float2(0, 1), float2(-1, 0), float2(0, -1),
                  float2(DIV_SQRT_2, DIV_SQRT_2), float2(-DIV_SQRT_2, DIV_SQRT_2),
                  float2(-DIV_SQRT_2, -DIV_SQRT_2), float2(DIV_SQRT_2, -DIV_SQRT_2)};

                float aspect = _ScreenParams.x * (_ScreenParams.w - 1); //width times 1/height
                float2 sampleDistance = float2(_OutlineWidth / aspect, _OutlineWidth);
                
                //generate outline
                float maxAlpha = 0;
                for(uint index = 0; index<8; index++){
                  float2 sampleUV = i.uv + directions[index] * sampleDistance;
                  maxAlpha = max(maxAlpha, tex2D(_SelectionBuffer, sampleUV).a);
                }
                //remove core
                float border = max(0, maxAlpha - tex2D(_SelectionBuffer, i.uv).a);
                
                // sample the texture
                fixed4 col = tex2D(_MainTex, i.uv);
                col = lerp(col, _OutlineColor, border);
                return col;
            }
            ENDCG
        }
    }
}

Csharp script( i basically use two of the same script one for selection and highlight just with different variable names both place in camera gameobject):

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;

public class PostProcess : MonoBehaviour
{
	public Renderer OutlinedObject;

	public Material WriteObject;
  
    public Camera _camera;

    
    public Material currentOutline;
	void Update()
	{
     
	}


	void OnRenderImage(RenderTexture source, RenderTexture destination)
	{
		//setup stuff
		var commands = new CommandBuffer();
		int selectionBuffer = Shader.PropertyToID("_SelectionBuffer");
		commands.GetTemporaryRT(selectionBuffer, source.descriptor);
		//render selection buffer
		commands.SetRenderTarget(selectionBuffer);
		commands.ClearRenderTarget(true, true, Color.clear);
		if (OutlinedObject != null)
		{
			commands.DrawRenderer(OutlinedObject, WriteObject);
		}

		//apply everything and clean up in commandbuffer
		commands.Blit(source, destination, currentOutline);
        Debug.Log(destination);
		commands.ReleaseTemporaryRT(selectionBuffer);

		
		//execute and clean up commandbuffer itself
		Graphics.ExecuteCommandBuffer(commands);
		commands.Dispose();
        Graphics.SetRenderTarget(destination);

	
    }
}

Could find anything related online for help,
Any help/feedback is greatly appreciated.

oh nevermind i am a idiot, i put my outline material on my write material in the inspector, therefore creating a loop