realtime empty payload.new - error 401: Unauthorized

I have supabase "realtime" setup for one of my tables "ReportIdeally" and I am receiving a payload when a change happens but payload.new (and payload.old) is always empty. See below example
{
    "payload": {
        "schema": "public",
        "table": "ReportIdeally",
        "commit_timestamp": null,
        "eventType": "UPDATE",
        "new": {},
        "old": {},
        "errors": [
            "Error 401: Unauthorized"
        ]
    }
}

I am listening to Realtime via the following:
useEffect(() => {

      const runsupabase = 
         supabase
        .channel("any")
        .on(
          "postgres_changes",
          { 
          event: "*",
          schema: "public",
          table: "*",
          },
          (payload) => {
            console.log("New Payload", {payload});
          }
        )
        .subscribe();
        return () => {
          supabase.removeChannel(runsupabase)
        }
      
    }, [supabase]);

And of course I have the relevant table enabled. I don't have RLS enabled yet so I am stumped to why this still doesn't return a payload with the updated item?
Is it to do with an authentication issue? Do I need to add an Auth bearer in the header even though I have no authentication setup yet?
My Supabase init is as follows:
import { createClient } from "@supabase/supabase-js";

export const supabase = createClient(
  process.env.NEXT_PUBLIC_SUPABASE_URL!,
  process.env.NEXT_PUBLIC_SUPABASE_KEY!
);


The resulting payload object is as follows:
{
    "payload": {
        "schema": "public",
        "table": "LotInterest",
        "commit_timestamp": null,
        "eventType": "UPDATE",
        "new": {},
        "old": {},
        "errors": [
            "Error 401: Unauthorized"
        ]
    }
}
Was this page helpful?