Sanity Studio API connection error with new blog preset project

20 replies
Last updated: Jun 3, 2020
Okay, so started a new project just now and can't get it to work at all
Standard init
Used the blog preset

sanity start
works - no problembut when I try to go to the studio it just shows me this error:


An error occured while attempting to reach the Sanity API.

It might be that your internet connection is unstable or down. You could try hitting the Retry button to see if it was just a temporary glitch.
Any clues to what I can try to fix?
AI Update

This is a classic CORS (Cross-Origin Resource Sharing) issue that happens when you initialize a new Sanity Studio project. The good news is it's easy to fix!

When you run sanity start, your Studio typically runs on http://localhost:3333 by default. For security reasons, Sanity projects only respond to queries from explicitly allowed origins. A fresh project defaults to allowing localhost:3333, but sometimes the configuration needs to be added manually.

Here's how to fix it:

Option 1: Add CORS origin via CLI (Easiest)

  1. Open your terminal in your Studio project folder
  2. Run this command:
    sanity cors add http://localhost:3333
  3. When prompted, select Yes to allow credentials (this is important for Studio to work)
  4. Refresh your browser

Option 2: Add CORS origin via Management Console

If the CLI command doesn't work:

  1. Go to manage.sanity.io
  2. Select your project
  3. Navigate to SettingsAPI settings
  4. Under CORS Origins, click Add CORS origin
  5. Enter http://localhost:3333
  6. Check the Allow credentials box (this is crucial!)
  7. Click Save
  8. Refresh your Studio in the browser

If you're using a different port

If you started your Studio on a different port (like localhost:3000), make sure to add that specific URL instead. You can check which port your Studio is running on by looking at the terminal output after running sanity start.

Still not working?

A few other things to check:

  • Check Sanity's status: Visit status.sanity.io to make sure all systems are operational
  • Clear browser cache: Sometimes cached credentials can cause issues
  • Try a different browser: This helps rule out browser-specific issues
  • Check your internet connection: Make sure you have a stable connection

The CORS configuration is covered in detail in the Sanity CORS documentation, which explains why this security measure exists and how to manage origins for different environments (development, staging, production).

Show original thread
20 replies
...and to add to this: I also tried with another project, and I still get the same error
Are there any console errors? Could be that you need to add
<http://localhost:3333>
to CORS list:

sanity cors add <http://localhost:3333>
I'm getting the same problem. Both offline and online. I'm using the sanity.io/create based project for Gridsome (but also cross tested it with the gatsby one) on Netlify and it worked before. Both netlify and local cors are added on the sanity projects.
Had this problem for several hours yesterday already and it reappeared today. Both days it seemed to happen in the afternoon CEST / start of office hours PDT and remained like this for hours (yesterday until after midnight).

Is there any way to debug this?
Is this potentially an issue in the studio as present in the
sanity.io/create or an api endpoint thing?
Asking because cli operations like deploying graphql works
user J

No errors in the console

Tried with the
sanity cors add <http://localhost:3333>
but I only got the following erorr:

Conflict - Duplicate origin already exists for this project
Could you check the network requests? Are all of them returning 200?
user Y
I'm not the best friend with the network tab, so I might have misunderstood this, but:

4 are blocked
3 return 304
the rest return 200
Could you take a screenshot perhaps?
One sec!
...and a ton of other ones with the blob: prefix between
hopefully this was correct, otherwise tell me and I'll try to send something better!
do you by any chance run an ad-blocker or something?
uBlock OriginBut tried disabling it now, and still no success
Tried with Firefox and it works there
...and now I fixed it on Chrome!
Running Privacy Badger which thought the api call was a "potential tracker" and therefore disabled
Yeah - that sometimes happen. It might help to clean out the Sanity auth cookie
could this be the same case for you
user F
?
Thanks for the help!
So yeah, for me this is resolved, and let me know if there's any info or something (Browser/Plugin version, etc) that would benefit if I sent for future bugs and so on
Yupp, also Privacy Badger here.
Anyone an idea on which part of the contact to &lt;yourappid&gt;.
api.sanity.io and cdn.sanity.io triggers privacy badget to completely block it (red). For things like the sanity-gridsomee example running on netlify, this leads to not just the dashboard being blocked but the site itself opening without any image assets as the gridsome example keeps them in the CDN.
This is still an issue for me. A bit of a different case however. Hopefully it is alright if I piggy back this thread. I am running a Raspberry Pi as a dev server and I am having this issue. It is both on Chrome and Firefox (with Privacy Badger disabled). I have added Cors for the the local IP (192.168.1.214:3333) and also for http://0.0.0.0:3333 which used adding the --host=0.0.0.0 tag. Still trying to track down the issue but any direction would be appreciated.
Access to XMLHttpRequest at 'https://{}.<http://api.sanity.io/v1/versions{}|api.sanity.io/v1/versions{*}>' from origin 'http://192.168.1.214:3333 ' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Credentials' header in the response is '' which must be 'true' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
Looks like I'm an idiot. Even though I created an entry for 192.168.1.214:3333 I didn't flip the Enable Authentication switch. That seems to have solved the issue.

Sanity – Build the way you think, not the way your CMS thinks

Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.

Was this answer helpful?