Atelier201 websiteJoin the waitlist
Using the productTroubleshooting
Using the product

Troubleshooting

What to check when a build fails, a change is not live, a domain stays pending or a call is refused.

A build failed

Open the build: error gives a code and a message, and the log shows the compiler’s output (Astro’s messages). The usual causes:

  • A content value that does not match its schema. The log names the field. Fix the content, not the schema, unless you meant to add a new kind of data.
  • A dependency the build does not have. The build runs without network access, on the packages Atelier201 has, so a project that adds another package, or another version, is refused. dependencies_unavailable means this, and its message names the package.
  • Infrastructure. build_infrastructure means the build container or storage failed, not your files. Build again.

A ready build of the same revision is reused, so build again after a fix, not before.

I published and visitors still see the old site

A publication reaches every address within about a minute. If the old version persists after that, check that you published the build you meant: atelier201 publish history and the site’s published.build_id show what is live. Publishing again, or a rollback, rewrites the routing of the site.

Publish is refused

Message or codeCause
409 conflict after a reviewSomeone published since your review. Review again and send the new expected_generation.
409 conflict listing blockersThe build cannot go live. Each blocker says what to do: see How a site goes live.
403 insufficient_scopeThe credential has no sites:publish. Ask the owner to publish, or reconnect with that scope.
403 admin_requiredOnly a workspace admin can publish.

A change was refused with a conflict

You wrote a file that someone changed since you read it. The error’s details carry the current revision and the paths. Read those files again and apply your change on top.

A domain stays pending

A domain moves from pending_ownership to provisioning to active when its records exist. If it stays in pending_ownership, the TXT record is missing or has not spread yet. Compare it with the records in the app, wait, and check the domain again. A conflict with a message about the plan means the site has no custom domain left: remove one or move the site to a higher plan.

A plan limit was reached

Publishing a draft is refused with a 403 feature_not_available; creating a draft past the workspace’s drafts and connecting a domain on a draft are refused with a 409 conflict. Each names the limit and links to the page that lifts it (action_url). Move the site to the Site plan, or delete a draft, then retry. An agent must not retry in a loop or change the plan itself.

My credit balance looks wrong

The balance is the sum of unexpired grants minus what was used. The Billing page lists each grant with its expiry date. Only AI spends credits: the assistant, and images or videos made with AI.

I cannot sign in

Check which email address the account uses. An account created with Google and an account created with a password are the same account only if they share an address.

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search Atelier201 Docs documentation and read it in full, instead of answering from memory.

https://atelier201.com/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://atelier201.com/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.