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

# M303: Local provider unavailable on Manifest Cloud

> Manifest error M303 fires when a Manifest Cloud request routes to Ollama, LM Studio, or llama.cpp. Returns HTTP 400. Fix: self-host, or expose the runtime as a custom provider.

## What you saw

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
[🦚 Manifest M303] Built-in local providers are only available in self-hosted Manifest. On Manifest Cloud, expose the runtime through a public URL or tunnel and connect it as a custom provider.
See https://manifest.build/docs/errors/M303
```

## Why it happened

The built-in [local provider](/docs/providers/local-models) tiles (Ollama, LM Studio, llama.cpp) route to `localhost`. On a self-hosted install that's your machine, which is the whole point. On Manifest Cloud, `localhost` is our server, which has no model running on it and no route back to your laptop.

Rather than dial an address that can't be yours, Manifest stops the request here.

## How to fix it

Pick whichever fits:

<Tabs>
  <Tab title="Self-host">
    Local providers work as designed on a self-hosted install, and your prompts
    never leave your network. See [Self-hosted](/docs/self-hosted) for the one-line
    Docker install.
  </Tab>

  <Tab title="Custom provider">
    Keep using Cloud and give your runtime a public address. A tunnel
    (Cloudflare Tunnel, ngrok, Tailscale Funnel) is the usual way. Then add it
    under [Custom providers](/docs/providers/custom-providers) using the public URL
    instead of the built-in tile.

    Put authentication in front of it. A public URL with no key is an open
    inference endpoint that anyone can bill to your hardware.
  </Tab>
</Tabs>

## Related

* [Local models](/docs/providers/local-models)
* [Custom providers](/docs/providers/custom-providers)
* [Self-hosted](/docs/self-hosted)
* [M302: Model not available](/docs/errors/M302)
* [All error codes](/docs/errors)
