Skip to content

columns of type bytea are encoded twice in realtime #453

Open
@nstringham

Description

@nstringham

Bug report

  • I confirm this is a bug with Supabase, not with my own application.
  • I confirm I have searched the Docs, GitHub Discussions, and Discord.

Describe the bug

I have a table with a column of type bytea.

If for example, I have a row where the column contains four bytes of zeros.

When I get the value like this

supabase
  .from("my_table")
  .select("my_column")

I get back \x00000000 which is the hex of the bytes as expected

but when I try to get the value in real time like this

.channel("schema-db-changes")
  .on(
    "postgres_changes",
    {
      event: "UPDATE",
      schema: "public",
      table: "my_table",
    },
    ({ new: { my_column } }) => {
      ...
    },
  )

then I get \x3030303030303030 which is the hex of the asci of the hex of the bytes

Expected behavior

realtime should match the get

System information

  • OS: Windows
  • Browser: Chrome and Firefox
  • Version of supabase-js: 2.48.0
  • Version of Node.js: v22.3.0

Additional context

I am able to work around this by performing the hex conversion twice for anything coming from the realtime API but it's not ideal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions