# Deploy OTP Email Fix ## Problem The `send-auth-otp` edge function was trying to insert into `notification_logs` table which doesn't exist, causing the function to crash AFTER sending the email. This meant: - ✅ Email was sent by Mailketing API - ❌ Function crashed before returning success - ❌ Frontend might have shown error ## Solution Removed all references to `notification_logs` table from the edge function. ## Deployment Steps ### 1. SSH into your server ```bash ssh root@lovable.backoffice.biz.id ``` ### 2. Navigate to the project directory ```bash cd /path/to/your/project ``` ### 3. Pull the latest changes ```bash git pull origin main ``` ### 4. Deploy the edge function ```bash # Option A: If using Supabase CLI supabase functions deploy send-auth-otp # Option B: If manually copying files cp supabase/functions/send-auth-otp/index.ts /path/to/supabase/functions/send-auth-otp/index.ts # Then restart the edge function container docker-compose restart edge-functions # or docker restart $(docker ps -q --filter 'name=supabase_edge_runtime') ``` ### 5. Verify deployment ```bash # Check if function is loaded supabase functions list # Should show: # send-auth-otp ... # verify-auth-otp ... # send-email-v2 ... ``` ### 6. Test the fix ```bash # Test with curl curl -X POST https://lovable.backoffice.biz.id/functions/v1/send-auth-otp \ -H "Authorization: Bearer YOUR_SERVICE_ROLE_KEY" \ -H "Content-Type: application/json" \ -d '{"user_id":"TEST_USER_ID","email":"test@example.com"}' # Expected response: # {"success":true,"message":"OTP sent successfully"} ``` ### 7. Test full registration flow 1. Open browser to https://with.dwindi.com/auth 2. Register with new email 3. Check email inbox 4. Should receive OTP code ## What Changed ### File: `supabase/functions/send-auth-otp/index.ts` **Before:** ```typescript // Log notification await supabase .from('notification_logs') .insert({ user_id, email: email, notification_type: 'auth_email_verification', status: 'sent', provider: 'mailketing', error_message: null, }); ``` **After:** ```typescript // Note: notification_logs table doesn't exist, skipping logging ``` ## Troubleshooting ### If email still not received: 1. **Check edge function logs:** ```bash docker logs $(docker ps -q --filter 'name=supabase_edge_runtime') | tail -50 ``` 2. **Check if OTP was created:** ```sql SELECT * FROM auth_otps ORDER BY created_at DESC LIMIT 1; ``` 3. **Check notification settings:** ```sql SELECT platform_name, from_name, from_email, api_token FROM notification_settings LIMIT 1; ``` 4. **Verify email template:** ```sql SELECT key, name, is_active, LENGTH(email_body_html) as html_length FROM notification_templates WHERE key = 'auth_email_verification'; ``` 5. **Test email sending directly:** ```bash curl -X POST https://lovable.backoffice.biz.id/functions/v1/send-email-v2 \ -H "Authorization: Bearer YOUR_SERVICE_ROLE_KEY" \ -H "Content-Type: application/json" \ -d '{ "to": "your@email.com", "api_token": "YOUR_MAILKETING_TOKEN", "from_name": "Test", "from_email": "test@with.dwindi.com", "subject": "Test Email", "html_body": "