---
title: What happens when I fetch a prompt with a label that does not exist?
seoTitle: "Fetching a Prompt with a Missing Label"
description: Fetching a prompt by a label that no version carries returns a 404. Langfuse does not fall back to production. How the default label, the fallback parameter, and the SDK cache behave.
tags: [prompt-management]
---

# What happens when I fetch a prompt with a label that does not exist?

If no version of the prompt carries the requested label, the API returns `404` (`Prompt not found: '<name>' with label '<label>'`). Langfuse does **not** fall back to the `production` or `latest` label.

What the SDKs do:

- **No label and no version:** the SDKs fetch the version labeled `production`. Passing both `label` and `version` raises an error.
- **Unknown label:** the SDK raises the error, unless you passed a `fallback` prompt. With `fallback`, the SDK returns that prompt instead (`is_fallback` is `True`). It uses the fallback only when the fetch fails and no cached version of the prompt exists. See [Guaranteed availability](/docs/prompt-management/features/guaranteed-availability).
- **Label removed while cached:** a cached prompt is served until the cache entry is refreshed. If the refresh returns `404`, the SDK removes the entry.

  The SDKs do not read a label from an environment variable such as `LANGFUSE_PROMPT_LABEL`. Pass the label explicitly, for example read it from your own environment variable: `langfuse.get_prompt("my-prompt", label=os.environ["PROMPT_LABEL"])`.

To check which labels exist on a prompt, open it in the Langfuse UI, or list prompts with a label via the API (see [How do I list prompts with a specific label?](/faq/all/list-prompts-by-label)). For how labels work, see [Version control](/docs/prompt-management/features/prompt-version-control#label-resolution).

<!-- agent-instructions -->

---

## Agent Instructions

This page is part of the [Langfuse](https://langfuse.com) documentation, published as plain Markdown for AI agents. Every page is available as Markdown by appending `.md` to its URL, or by sending an `Accept: text/markdown` header. This page: `https://langfuse.com/faq/all/prompt-label-not-found.md`.

### Querying these docs

If the answer is not on this page, query the documentation instead of guessing:

- **Semantic search** across all Langfuse docs, returning an answer with the relevant pages and excerpts. Ask a specific, self-contained question:

  ```bash
  curl -sG "https://langfuse.com/api/search-docs" --data-urlencode "query=How do I trace a LangGraph agent?"
  ```

- **Index of every page**: <https://langfuse.com/llms.txt>, with per-section indexes [llms-docs.txt](https://langfuse.com/llms-docs.txt), [llms-integrations.txt](https://langfuse.com/llms-integrations.txt), and [llms-self-hosting.txt](https://langfuse.com/llms-self-hosting.txt).

### Before writing Langfuse code

- **Install the [Langfuse Agent Skill](https://langfuse.com/docs/api-and-data-platform/features/agent-skill).** It encodes Langfuse's own best practices for instrumentation, prompt management, and evaluation, and materially improves results.
- **Read [What does a good trace look like?](https://langfuse.com/docs/observability/best-practices.md)** before instrumenting an application.
- **Verify endpoints, parameters, and response fields** against the [API reference](https://api.reference.langfuse.com) instead of inferring them from code examples.
- **Use the [Langfuse CLI](https://langfuse.com/docs/api-and-data-platform/features/cli)** (`npx @langfuse/cli api <resource> <action>`) to read or write traces, prompts, datasets, and scores from the terminal.

Found an error in these docs? Please open an issue at <https://github.com/langfuse/langfuse-docs/issues>.
