---
title: "StudioMeyer Academy Understand errors"
description: "Stable error codes, readable hints and safe next steps."
canonical: "https://studiomeyer.academy/en/developers/fehler"
language: en
markdown_versions: ["https://studiomeyer.academy/entwickler/fehler.md", "https://studiomeyer.academy/en/developers/fehler.md", "https://studiomeyer.academy/es/entwickler/fehler.md"]
publisher: "StudioMeyer Academy, https://studiomeyer.academy (llms.txt: https://studiomeyer.academy/llms.txt)"
---

## React to codes

Branch on slug or code, never on message. Every error includes message, hint and documentation\_url. request\_id appears in the body and X-Request-Id header. Include this identifier when reporting a problem, without tokens or personal content.

- [GET /v1/errors](https://studiomeyer.academy/v1/errors)
- [OpenAPI](https://studiomeyer.academy/v1/openapi.json)

## Retry safely

For rate\_limited wait for Retry-After. For insufficient\_scope request reauthorization. For price\_changed obtain a new quote and approval. For outcome\_unknown read the ledger and outcome first; do not use a new key for the same uncertain payment. OAuth errors use error and error\_description rather than the Academy envelope.

## Reference

### `auth_required`

Error 1000 · HTTP 401

Sign-in required.

**Next step:** Sign in with OAuth or use public access.

### `invalid_token`

Error 1001 · HTTP 401

The credential is invalid or expired.

**Next step:** Refresh your credential or reconnect.

### `insufficient_scope`

Error 1002 · HTTP 403

A required permission is missing.

**Next step:** Reconnect and select the required permissions.

### `credits_spend_not_granted`

Error 1003 · HTTP 403

Spending credits is not permitted.

**Next step:** Ask the person for consent and reconnect.

### `account_suspended`

Error 1004 · HTTP 403

The account is suspended.

**Next step:** Contact support.

### `session_required`

Error 1005 · HTTP 403

This action requires a browser session.

**Next step:** Open the account link in your browser.

### `validation_failed`

Error 1100 · HTTP 400

The input is invalid.

**Next step:** Correct the fields using the published schema.

### `not_found`

Error 1101 · HTTP 404

The entry was not found.

**Next step:** Search through /v1/search.

### `idempotency_key_reused`

Error 1102 · HTTP 409

The idempotency key belongs to a different request.

**Next step:** Use a new key for a new action.

### `conflict`

Error 1103 · HTTP 409

The request conflicts with the current state.

**Next step:** Read the current state and try again.

### `idempotency_key_required`

Error 1104 · HTTP 400

The idempotency key is missing.

**Next step:** Include the Idempotency-Key header.

### `idempotency_in_flight`

Error 1105 · HTTP 409

This action is already in progress.

**Next step:** Read its state before sending again.

### `confirmation_required`

Error 1106 · HTTP 422

Explicit confirmation is missing.

**Next step:** Show the action and send confirmation only after consent.

### `locale_not_supported`

Error 1107 · HTTP 400

This language is not supported.

**Next step:** Choose de, en or es.

### `rate_limited`

Error 1200 · HTTP 429

The request limit has been reached.

**Next step:** Wait for the seconds specified by Retry-After.

### `tutor_limit_reached`

Error 1201 · HTTP 409

The tutor limit has been reached.

**Next step:** Try again later.

### `path_not_found`

Error 2001 · HTTP 404

The learning path was not found.

**Next step:** Read the available paths at /v1/paths.

### `module_not_found`

Error 2002 · HTTP 404

The module was not found.

**Next step:** Read the path and its confirmed content.

### `lesson_not_found`

Error 2003 · HTTP 404

The lesson was not found.

**Next step:** Check the level and slug or use search.

### `library_item_not_found`

Error 2004 · HTTP 404

The library entry was not found.

**Next step:** Read the library at /v1/library.

### `content_type_unknown`

Error 2005 · HTTP 400

The content type is unknown.

**Next step:** Choose a content type listed in the schema.

### `premium_required`

Error 2006 · HTTP 402

This content requires a premium entitlement.

**Next step:** Read the preview and ask for consent before unlocking.

### `content_dormant`

Error 2007 · HTTP 410

This content is no longer active.

**Next step:** Check the indicated successor.

### `lesson_already_completed`

Error 3001 · HTTP 409

The lesson is already completed.

**Next step:** Continue through /v1/me/continue.

### `quiz_not_available`

Error 3002 · HTTP 404

No quiz is available for this lesson.

**Next step:** Review the lesson.

### `note_not_found`

Error 3003 · HTTP 404

The note was not found.

**Next step:** Read your notes at /v1/me/notes.

### `insufficient_credits`

Error 4002 · HTTP 409

There are not enough credits.

**Next step:** Compare the price and balance on the account page.

### `bonus_credits_not_allowed`

Error 4003 · HTTP 422

Bonus credits cannot pay for coaching.

**Next step:** Use eligible credits or submit an unpaid request.

### `already_unlocked`

Error 4004 · HTTP 409

The content is already unlocked.

**Next step:** Read it at /v1/me/premium/{id}.

### `price_changed`

Error 4005 · HTTP 409

The price has changed.

**Next step:** Show the updated preview and ask for consent again.

### `outcome_unknown`

Error 4006 · HTTP 503

The outcome of the action is unknown.

**Next step:** Check /v1/me/credits/ledger first and avoid duplicate requests.

### `package_not_found`

Error 5001 · HTTP 404

The package was not found.

**Next step:** Search the catalog for an available package.

### `draft_consent_required`

Error 5002 · HTTP 422

The package is a draft.

**Next step:** Ask for consent and then send consentDraft: true.

### `package_deprecated`

Error 5003 · HTTP 410

The package is deprecated.

**Next step:** Check its successor in the links.

### `lockfile_invalid`

Error 5004 · HTTP 400

The lockfile is invalid.

**Next step:** Check the lockfile against the package format.

### `local_changes_detected`

Error 5005 · HTTP 409

Local changes were detected.

**Next step:** Show and resolve the changes before updating.

### `script_consent_required`

Error 5006 · HTTP 422

The package contains scripts.

**Next step:** Show the scripts and ask for separate consent.

### `internal`

Error 9000 · HTTP 500

A server error occurred.

**Next step:** Report the error with the request ID.

### `not_implemented`

Error 9001 · HTTP 501

This feature is not available yet.

**Next step:** Check the changelog.

### `temporarily_unavailable`

Error 9002 · HTTP 503

This action is currently unavailable.

**Next step:** Check the indicated prerequisites and try again later.

## Sitemap

Public pages of this site as Markdown: [sitemap](https://studiomeyer.academy/sitemap.md). Curated entry point: [llms.txt](https://studiomeyer.academy/llms.txt), full text: [llms-full.txt](https://studiomeyer.academy/llms-full.txt).
