Running into an error while publishing or deploying your project? See Publish issues.
GitHub sync issues
In your own projects, Bolt syncs to GitHub every time you make a change. If collaborators edit your project, their changes sync the next time you open the project. If your changes don’t sync to GitHub as expected, reauthorizing the GitHub app can help refresh the connection and get your sync working again. To reauthorize your GitHub connection:- On the Bolt homepage, below the chatbox, click the GitHub option.
- In the Import a repository dialog, click Configure the GitHub App. The Install Bolt.new (by StackBlitz) page opens.
- Select your GitHub account. The Install & Authorize Bolt.new (by StackBlitz) page opens.
- Click Install & Authorize, then follow the on-screen instructions to enter your credentials. When GitHub finishes verifying your credentials, you’re returned to Bolt, and your connection is refreshed.
GitHub authentication issues
Sometimes, GitHub authentication conflicts can occur if you’ve connected the same GitHub account to more than one Bolt account. This usually happens when:- You originally signed up for Bolt using your GitHub account.
- Later, you created a new Bolt account and tried to connect that same GitHub account through the GitHub integration.
1
Create a new login method for your original Bolt account
-
In your first Bolt account (the one you signed up for using GitHub), reset your password using the email address associated with your GitHub account.
This adds an email and password login option to that account.
- Log out once the reset is complete.
2
Remove GitHub authentication from the old account
- Log back in to the original account using your new email and password credentials.
- Click Settings in the left menu.
- Click the Credentials tab.
- Under GitHub, click Delete to remove GitHub as an authentication method.
3
Connect the GitHub integration to your new account
- Log in to your new Bolt account (the one you want to use going forward).
- Go through the usual steps to connect the GitHub integration.
Supabase row-level security rules aren’t working
If your Supabase row-level security (RLS) rules aren’t behaving as expected (such as returning no data, exposing too much data, or causing authorization errors), it’s often due to a misconfigured policy or a mismatch between your schema and the rule conditions. You can resolve this by resetting your RLS configuration and reapplying the correct rule through Bolt. To do so, follow these steps:- In the chatbox, prompt Bolt to remove all existing row-level security rules from the affected Supabase table. This clears out any incorrect or conflicting policies.
- Once the rules are removed, prompt Bolt to add back the relevant row-level security rule. Be specific about the intended behavior (for example, “only allow users to view rows where user_id matches their authenticated ID”).
- After the new rule is applied, test your queries or endpoints again to confirm the policy is now enforced correctly.
Supabase edge functions
Supabase Edge Functions act as the central bridge between your application, external services, and your database. Edge functions can connect your project with services like OpenAI, Notion, Stripe, or GitHub. Each connection type introduces its own potential issues, shown at the interaction points in the diagram:- CORS errors may occur when a web browser tries to call an edge function from a domain that isn’t permitted in your CORS configuration.
- Authorization header or JWT issues happen when external services like Stripe or GitHub send webhook requests that do not include a JSON Web Token. In these cases, JWT verification must be disabled, and other validation methods should be added instead.
- Missing secrets can arise when an edge function attempts to connect to an external API, such as OpenAI, without including the required authentication key or environment variable.
CORS (cross-origin resource sharing) errors
If your edge function isn’t working, it may be due to a CORS error. To check this:-
Open Chrome DevTools: press
Command + Option + Jon Mac,Control + Shift + Jon Windows or Linux. - Check the Network tab. Look for errors related to CORS.
-
Next, check if CORS headers are set correctly in the file responsible for your edge function. Here are the CORS headers for a chatbot built with Bolt using OpenAI:
Missing secret
If your Supabase edge function fails to connect to a service like OpenAI, it’s often because a required API key or secret is missing from your Supabase project. You’ll need to add the secret in Supabase first, then let Bolt know about the update so it can continue development correctly.1
Add the secret in Supabase
- In your Supabase project, hover over the left-hand side of the page to open the main menu.
- Select Edge Functions > Secrets.
-
Click Add secret and enter the required key–value pair.
For example, to connect to OpenAI, add a secret named
OPENAI_API_KEYand paste in your API key.

- Save the change.
This step securely stores your secret within Supabase so your edge functions can access it when running.
2
Update Bolt
After you’ve added or updated the secret in Supabase, prompt Bolt to refresh its connection. You can do this by telling Bolt that you’ve added a new secret, so it can recognize the change and continue development or testing.This ensures Bolt uses the most up-to-date configuration from your Supabase environment.
Webhooks: authorization headers and JWT
When a webhook in your project is triggered by a third-party service (such as GitHub, Slack, or Stripe), the request will come from outside your application’s authentication system. This means it will not include a valid JSON Web Token (JWT). By default, Supabase edge functions expect authenticated requests. If JWT verification remains enabled, your webhook calls from external services will fail with an authorization error. How to handle this correctly:- Disable JWT verification for the edge function that receives the webhook.
This allows the function to accept incoming requests from third-party services that don’t use your app’s authentication.
- Add custom validation and authorization logic inside your edge function to ensure requests are legitimate. For example:
- Validate a secret or signature header provided by the third-party service.
- Confirm the request source matches the expected domain or IP range.
Branding doesn’t show on the Google OAuth consent screen
If your app name or logo isn’t appearing on the Google sign-in screen, the issue is usually in your Google Cloud Console branding configuration rather than in Bolt. To check, sign in to Google Cloud Console and go to Google Auth Platform > Branding. The most common causes are:- Your branding hasn’t been verified. Google requires verification before your app name and logo appear on the consent screen. If you haven’t submitted for verification yet, click Verify branding.
- Your branding hasn’t been published. Verification and publishing are separate steps. After verification is complete, click Publish branding to make your changes live.
- Your Google OAuth app is in Testing mode. Even with verified and published branding, your app name and logo won’t appear if your publishing status is set to Testing. To fix this, go to Google Auth Platform > Audience and publish your app.