sojorn/sojorn_docs/features/posting-and-appreciate-fix.md

44 lines
1.5 KiB
Markdown

# 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 = '<user_id>';` returns a row.
- Posting succeeds for both accounts.
- Appreciating posts returns 200 and no browser CORS errors.