PostgreSQL 17.0 (Debian 17.0-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
Description: When a RETURNS TABLE function in PL/pgSQL includes a column name that matches a column in a table being targeted for an ON CONFLICT clause, PostgreSQL throws an error stating that the column reference is ambiguous. This happens even though the context of ON CONFLICT unambiguously refers to table column names, not PL/pgSQL variables. This behavior leads to unexpected errors in scenarios where the function's RETURNS TABLE includes columns with the same name as those in the target table. Explicit qualification of column names in ON CONFLICT (e.g., table.column) also fails to resolve the issue.
Yes, this is a known limitation that has a very low priority for being fixed. You can find more discussion on the mailing list archives.