La seguridad por filas de Supabase funciona al revés de lo que uno espera: no bloquea lo que le dices que bloquee, sino que bloquea todo salvo lo que autorizas explícitamente. Al activarla en una tabla, esa tabla se cierra entera hasta que escribes una política que abra una rendija concreta.
Es muy habitual haber escrito la política de lectura y haberse olvidado de la de escritura. Se prueba la app, se ve que los datos se muestran bien, y el problema no aparece hasta que alguien intenta guardar algo. También pasa cuando la política existe pero exige que el usuario esté identificado y quien escribe no lo está, o cuando exige que el campo de propietario coincida con el usuario y tu código no está rellenando ese campo.