Supabase issues
App stuck or showing errors after adding Supabase
App stuck or showing errors after adding Supabase
- Open your project settings and go to the Supabase integration panel
- Check the migrations panel and push any pending migration scripts
- Log into the Supabase dashboard and verify your project is active (not paused). If paused, click “Restore” to reactivate it
- Under Authentication > URL Configuration, confirm your redirect URLs match your app’s URLs
RLS blocking queries (empty results or policy errors)
RLS blocking queries (empty results or policy errors)
- Open the Supabase dashboard and navigate to the table in question
- Check the “Policies” tab to see if any RLS policies exist
- If no policies exist, create policies that allow authenticated users to read rows and modify only their own rows
- If policies exist, verify they match the expected user role and auth state
JWT token errors
JWT token errors
- Open Code View and verify that
SUPABASE_URLandSUPABASE_ANON_KEYenvironment variables are set correctly - Check that the Supabase client is imported and initialized in your code
- Make sure your app refreshes the auth session automatically so expired tokens get renewed
- If tokens keep expiring, redirect the user to the login page instead of showing a broken state
Redirect URL mismatch (auth callback failing)
Redirect URL mismatch (auth callback failing)
- Go to the Supabase dashboard > Authentication > URL Configuration > Redirect URLs
- Add your app’s callback URL (for example,
https://your-app.netlify.app/auth/callback) - For local development, also add
http://localhost:[PORT]/auth/callback - Make sure the auth callback handler in your code extracts the session from the URL hash correctly
Social auth not working
Social auth not working
Storage bucket permission errors
Storage bucket permission errors
- In the Supabase dashboard, go to Storage and confirm the bucket exists
- If the bucket is private, add RLS policies to allow uploads and downloads for authenticated users
- If you need public access (e.g., for profile images), set the bucket to public
- Verify the file path format in your upload code matches what the policies expect
Stripe issues
Webhook not firing
Webhook not firing
- In the Stripe dashboard, go to Developers > Webhooks and verify the endpoint URL points to your deployed app (e.g.,
https://your-app.netlify.app/api/webhooks/stripe) - Copy the webhook signing secret and add it as an environment variable in your app
- Make sure the endpoint parses the raw request body (not JSON-parsed) for signature verification
- For local testing, use the Stripe CLI:
stripe listen --forward-to localhost:[PORT]/api/webhooks/stripe
Test mode vs. live mode confusion
Test mode vs. live mode confusion
sk_test_...) with live mode products, or live keys (sk_live_...) with test mode products. Test and live environments are completely separate in Stripe.How to fix it:- Check your environment variables:
STRIPE_SECRET_KEYandSTRIPE_PUBLISHABLE_KEY - For development, make sure both keys start with
sk_test_andpk_test_ - Verify that product and price IDs were created in the same environment (test or live) as your keys
- When going to production, swap to live keys and recreate products in live mode
Checkout redirect not working
Checkout redirect not working
success_url or cancel_url in the checkout session uses a relative path instead of an absolute URL, or the domain is not configured in Stripe settings.How to fix it:- Open your checkout session creation code and verify
success_urlandcancel_urluse absolute URLs (e.g.,https://your-app.netlify.app/success) - For development, use
http://localhost:[PORT]/success - Include any required query parameters like
session_id={CHECKOUT_SESSION_ID} - Test both the success and cancel flows
Subscription status not updating
Subscription status not updating
checkout.session.completed or customer.subscription.updated), or the database is not being updated when the webhook fires.How to fix it:- Verify your webhook endpoint is receiving events (check Stripe dashboard > Developers > Webhooks > Recent events)
- Confirm your handler processes these events:
checkout.session.completed,customer.subscription.updated,customer.subscription.deleted - Check that the handler updates the user’s subscription status in your database after processing each event
- Add logging to your webhook handler to trace what happens when each event arrives
Email issues (Resend/SendGrid)
Emails not sending (API key missing or sender not verified)
Emails not sending (API key missing or sender not verified)
- Open Code View and verify your email API key environment variable is set (e.g.,
RESEND_API_KEYorSENDGRID_API_KEY) - Confirm the API key is only accessed server-side to avoid exposing it
- For development with Resend, use
onboarding@resend.devas the sender address - For production, verify your custom domain in the provider’s dashboard by adding the required DNS records
Emails going to spam
Emails going to spam
- In your domain’s DNS settings, add the SPF, DKIM, and DMARC records provided by your email service
- Use a recognizable “from” name (e.g., “YourApp Team”) instead of a generic address
- Avoid spam trigger words, all-caps, and excessive punctuation in subject lines
- Include a plain-text version alongside HTML and add an unsubscribe link
Auth emails not branded (Supabase SMTP not configured)
Auth emails not branded (Supabase SMTP not configured)
- Set up a Resend account and verify your domain
- In the Supabase dashboard, go to Project Settings > Authentication > SMTP Settings
- Enable “Custom SMTP” and enter your Resend SMTP credentials (host:
smtp.resend.com, port: 465, username:resend, password: your API key) - Customize your email templates under Authentication > Email Templates
AI integration issues (OpenAI/Anthropic/Gemini)
Rate limit errors
Rate limit errors
- Add a loading state that disables the trigger button while a request is in progress
- Debounce user-triggered AI calls so rapid clicks do not send multiple requests
- Implement exponential backoff retry on 429 errors (wait 1s, then 2s, then 4s)
- Cache recent AI responses to avoid duplicate requests for the same input
- If you hit limits frequently, consider upgrading your API plan with the provider
Token limit exceeded
Token limit exceeded
- Truncate input text to a reasonable character limit before sending
- Show a warning if the user’s input is too long
- For long content, split it into chunks, process each chunk, then combine the results
- Consider using a model with a larger context window
Model not responding
Model not responding
- Verify the API key environment variable is set and correct
- Check the model name is spelled correctly (e.g.,
gpt-4onotgpt4o) - Set a 30-second timeout on the API call
- Add a “Cancel” button so users can abort a stuck request
- Check the provider’s status page to rule out outages
Streaming not working
Streaming not working
data: {"choices":[...]} in the UI.Why it happens: The response is not being processed as a stream on the client side, or the API call is not configured to use streaming mode.How to fix it:- Verify the API call includes
stream: truein the request options - On the server, make sure the response uses a streaming format (e.g., Server-Sent Events or a ReadableStream)
- On the client, process the stream incrementally and update the UI as each chunk arrives
- Check that no middleware is buffering the entire response before sending it
Deployment issues (Netlify)
Build failure
Build failure
package.json, the build command is incorrect, or there are code errors that only appear during a production build (like unused imports treated as errors).How to fix it:- Check the build logs in the Netlify dashboard for the specific error
- Verify the build command matches your project (e.g.,
npm run buildornext build) - Make sure all dependencies are listed in
package.json(not just installed locally) - Check for case-sensitive file path issues, as Netlify runs on Linux
- Verify the Node.js version in your Netlify settings matches what your project requires
Environment variables missing in production
Environment variables missing in production
.env file were not added to the Netlify dashboard. The app runs without the required API keys and connection strings.How to fix it:- In the Netlify dashboard, go to Site Settings > Environment Variables
- Add every variable your app needs:
SUPABASE_URL,SUPABASE_ANON_KEY,STRIPE_SECRET_KEY,STRIPE_PUBLISHABLE_KEY, email API keys, and any others - Trigger a redeploy after adding the variables
- Add a startup validation check in your app that logs which required variables are missing
Custom domain not resolving
Custom domain not resolving
- In Netlify, go to Domain Settings and verify your custom domain is listed
- Add the correct DNS records at your domain registrar (typically a CNAME pointing to your Netlify subdomain, or an A record for the apex domain)
- Wait up to 48 hours for DNS propagation
- Check that SSL/HTTPS is provisioned for the custom domain in Netlify’s settings
- Use a DNS lookup tool (like dnschecker.org) to verify records are set correctly
Preview not matching the deployed version
Preview not matching the deployed version
- In the Netlify dashboard, trigger a “Clear cache and deploy site” to force a fresh build
- Verify the build command and publish directory match your project type
- Compare environment variables between your Rocket project and Netlify settings
- Check that the deployed branch matches the branch you are previewing in Rocket
Preview and editor issues
Changes not showing in preview
Changes not showing in preview
- Wait 1-2 minutes for the build to complete
- Refresh the preview panel
- Check the chat history for any error messages during code generation
- If the issue persists, use the
/fixcommand or ask Rocket to regenerate the changes
Visual Edit not working
Visual Edit not working
- Make sure you are using Rocket on a web browser, not the iOS app
- Try clicking on a different, simpler element to confirm Visual Edit is active
- For elements that are not selectable, use the chat interface instead to describe the change you want
- If Visual Edit was working before but stopped, refresh the page
Figma import issues (permissions, rate limits, design guidelines)
Figma import issues (permissions, rate limits, design guidelines)
- In Figma, click Share and verify that “Anyone with the link” can view the file
- If you see a rate limit error, wait a few minutes and try again. See Rate Limit Errors for details
- Review the Figma Design Guidelines to ensure your design follows best practices
- Common design issues include ungrouped layers, components outside screen boundaries, and invisible components


- In the Supabase dashboard, go to Authentication > Providers and enable the social provider you want (e.g., Google, GitHub)
- Enter the OAuth client ID and client secret from the provider’s developer console
- Copy the callback URL from Supabase and add it to the provider’s authorized redirect URIs
- In your Rocket app, verify the login button calls the correct Supabase social auth method
Prompt to paste in Rocket chat: