# Posting and Appreciate Issue Fix ## Symptoms - One account could post and appreciate, another could not. - Client showed `ClientFailed to fetch` with no useful error details. ## Root Causes 1) **Missing `user_settings` rows** The failing account had no `user_settings` row, which `publish-post` relies on when determining TTL defaults. That caused requests to fail silently. 2) **CORS headers missing on edge functions** The browser blocked responses from `publish-post` and `appreciate`, producing a generic `ClientFailed to fetch` instead of the real error response. ## Fixes Applied ### 1) Backfill `user_settings` and ensure new users get it Migration added: - Creates `user_settings` table if missing. - Backfills rows for all existing users. - Updates `handle_new_user` trigger to insert a `user_settings` row. File: `supabase/migrations/20260121_create_user_settings.sql` ### 2) Add CORS headers to edge functions Both edge functions now return CORS headers for **all** responses. This prevents the browser from hiding the response body. Files: - `supabase/functions/publish-post/index.ts` - `supabase/functions/appreciate/index.ts` ## Deployment Steps 1) Apply migrations (includes `20260121_create_user_settings.sql`). 2) Redeploy edge functions: - `publish-post` - `appreciate` ## Validation Checklist - `select * from user_settings where user_id = '';` returns a row. - Posting succeeds for both accounts. - Appreciating posts returns 200 and no browser CORS errors.