---
title: Errors
description: "Common CLI and build error messages, their cause, and the fix."
---

| Message | Cause and fix |
| --- | --- |
| `handler must default-export an object with fetch(request)` | The entry file has no `export default { fetch(...) }`. |
| `Node, Bun, and Deno APIs are not supported` | The handler or a dependency uses `process`, `Buffer`, `Bun`, `Deno`, or a Node built-in other than `node:path`, `node:url` and `node:querystring`. See [Runtime compatibility](/docs/concepts/compatibility). |
| `Proxy is not supported by the compiler` | This error comes from CLI versions before 0.16.0. Upgrade to use Porffor alpha-16 Proxy support; see [Runtime compatibility](/docs/concepts/compatibility) for package-specific limits. |
| `fetch() refused: X resolves to <address>, a private or reserved address` | `fetch()` never reaches a private address. If the server's operator means to allow it, they set `SB_EGRESS_ALLOW`; see [Outbound fetch](/docs/bindings/outbound-fetch#private-addresses). |
| `unsupported config field: X` | `sproutboat.jsonc` has a field Sproutboat does not know. Check the spelling against [the full shape](/docs/concepts/configuration). |
| `binding X: no resource <id>` | The config names a resource id you do not own. Create one with the product's `create` command, such as `sproutboat kv create <name>`, or use a bare name and let deploy create it. See [Storage resources](/docs/storage). |
| `not serving after 90s` | The sprout is crashing, or Caddy is still issuing the certificate. Check `sproutboat tail --sprout`. |
| `X does not resolve to this server` (on `domains verify`) | Add the A or AAAA record, DNS-only, and re-run after DNS propagates. See [Custom domains](/docs/platform/custom-domains). |
| `deploy the project at least once before ...` | Secrets and custom domains need an existing deployment. Run `sproutboat deploy` first. |
