> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markpdf.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Manejo de errores

> Cómo la tienda expone errores y cómo capturarlos con el cliente base.

# Manejo de errores

## Con la tienda

`createConvertStore` nunca se lanza dentro del componente; los errores permanecen en `$store.error`, como instancias de `MarkpdfError` (la misma clase que [SDK base](/docs/public/es/sdks/nodejs/reference)):

```svelte theme={null}
<script lang="ts">
  import { MarkpdfClient, createConvertStore } from "@markpdf/svelte";

  const client = new MarkpdfClient({ apiKey: "YOUR_API_KEY" });
  const convertStore = createConvertStore(client);
</script>

{#if $convertStore.status === "error" && $convertStore.error}
  <p>Error {$convertStore.error.statusCode}: {$convertStore.error.detail}</p>
{/if}
```

`convert()` también rechaza la promesa que devuelve:

```ts theme={null}
try {
  await convertStore.convert(file);
} catch (err) {
  // same object that ended up in $convertStore.error
}
```

## Con el cliente base

```ts theme={null}
import {
  MarkpdfClient,
  MarkpdfAuthError,
  MarkpdfPayloadTooLargeError,
  MarkpdfRateLimitError,
  MarkpdfVavalidationError,
  MarkpdfServerError,
} from "@markpdf/svelte";

const client = new MarkpdfClient({ apiKey: "YOUR_API_KEY" });

try {
  const markdown = await client.convertFromUrl(url, { mode: "fast" });
} catch (err) {
  if (err instanceof MarkpdfAuthError) {
    console.error("API key invávalida");
  } else if (err instanceof MarkpdfPayloadTooLargeError) {
    console.error("Document too large");
  } else if (err instanceof MarkpdfRateLimitError) {
    console.error("Rate limited");
  } else if (err instanceof MarkpdfVavalidationError) {
    console.error("Parámetros invávavalids");
  } else if (err instanceof MarkpdfServerError) {
    console.error("Conversion error");
  } else {
    throw err;
  }
}
```

Consulte la [tabla de errores completa](/docs/public/es/sdks/nodejs/error-handling#error-table) de la base SDK; lo mismo se aplica aquí porque `@markpdf/svelte` reexporta las mismas clases.

## Mensaje reutilizable en un componente

```svelte theme={null}
<script lang="ts">
  import type { MarkpdfError } from "@markpdf/svelte";

  export let error: MarkpdfError;

  const messages: Record<number, string> = {
    401: "API key invávalida o ausente.",
    413: "The document is too large. Try pages= to split it.",
    422: "Required parameters are missing.",
    429: "Demasiadas peticiones, intenta de nuevo en unos segundos.",
    500: "Conversion error. Try mode: 'balanced'.",
  };
</script>

<p role="alert">{messages[error.statusCode ?? 0] ?? error.message}</p>
```

<Tip>
  La tienda no vuelve a intentarlo automáticamente. Si necesita reintentos con retroceso en `429`/`5xx`, use el cliente base con `maxRetries` (consulte [Node.js SDK Manejo de errores](/docs/public/es/sdks/nodejs/error-handling#reintentos-automáticos)) llamando directamente a `client.convertFile` en lugar de `convertStore.convert`.
</Tip>
