Docs / Search / LingCode Cloud / Troubleshooting
๐Ÿ“˜ Reference โ— Errors Updated 2026-06-11

Errors & troubleshooting

TL;DR: Every LingCode Cloud API error comes back as a short JSON code. In the SDK, a failed call resolves to { data: null, error } where error.code is the string code and error.status is the HTTP status. Over REST, errors look like { ok: false, error: "<code>", message: "โ€ฆ" }. Find the code below to see what it means and how to fix it.

This page is a lookup table, not a walkthrough. Errors are grouped by the product that raises them โ€” data, auth, storage, functions, secrets, hosting, vector search, and a handful of general transient ones. Match on the code string; the message is human-readable but the code is what's stable.

How errors are shaped

You never have to parse prose. Both transports carry the same machine-readable code:

// SDK
const { data, error } = await lingcode.from('todos').update({ done: true });
if (error) {
  console.log(error.code);   // e.g. "where_required"
  console.log(error.status); // e.g. 400
}

// REST
// HTTP 400
// { "ok": false, "error": "where_required", "message": "update requires a filter" }

Look up error.code in the tables below.

Data

Raised by table reads, writes, and the SQL query editor. Full guide: Database.

CodeWhat it meansFix
where_requiredupdate()/delete() ran without a filter.Add a filter (.eq/.match) to scope the rows.
table_not_found (404)The table name is wrong or hasn't been created.Check the name; run the migration that creates it.
invalid_request (400)A required field is missing or malformed (wrong table/filter/row shape).Fix the table name, filter, or row shape.
not_provisioned (409)The backend isn't live yet (still provisioning).Wait and retry, or poll the backend status.
read_only_violationThe console SQL query editor only runs read statements (SELECT/WITH/TABLE/EXPLAIN/SHOW).Use a migration for writes and DDL.
quota_exceeded (402)A tier cap was hit (tables, rows, etc.).Free up room or upgrade.

Auth

Raised by sign-up, sign-in, OTP/magic-link, MFA, and OAuth. Full guide: Authentication.

CodeWhat it meansFix
unauthorized (401)Missing or invalid token.Send the anon key (Bearer or ?apikey=) or the signed-in user token.
forbidden (403)An RLS policy denied it โ€” the row isn't owned by this user, or the table has no policy granting access.Review your policies.
invalid_code / invalid_or_expired / too_many_attemptsA one-time code or magic link was wrong, expired, or retried too often.Request a fresh one.
mfa_requiredThe backend requires MFA and the session is not yet at AAL2.Complete the MFA verify step.
state_secret_missing / invalid_redirectOAuth isn't fully configured, or the redirect URL isn't on the allow-list.Configure the provider in the console and use an allowed redirect.

Storage

Raised by bucket uploads, downloads, and removes. Full guide: Storage.

CodeWhat it meansFix
object_not_found (404)No object at that bucket/path.Check the bucket and path.
object_too_large / value_too_largeThe file exceeds the inline per-object cap.Use the direct presigned-upload path (the SDK does this automatically) or upgrade the tier.
direct_upload_unavailableThe presigned direct-to-storage path isn't available on this backend.Fall back to the inline upload for small files.
quota_exceeded (402)The backend's total storage cap is reached.Free up space or upgrade.

Functions

Raised by builtin and custom serverless function invocations. Full guide: Functions.

CodeWhat it meansFix
unknown_function (404)The slug is wrong โ€” a wrong name, not that functions are unavailable.Check the function slug.
functions_runtime_unavailable (503)The Deno runtime isn't installed on this server, so custom functions can't run (builtins still work).Use a builtin, or contact the operator to install the runtime.
function_errorYour function threw.Check the returned logs field for the message.
source_too_largeCustom function source exceeds 256 KB.Trim it.
missing_secretThe function needs a vault secret that isn't set.Add it in the console Secrets.
timeoutThe function exceeded the tier's wall-clock limit (3s free / 10s pro / 30s max_pro). Message: Function timed out after Xms.Make it faster or move long work elsewhere.

Secrets

Raised by the secrets vault. Full guide: Secrets vault.

CodeWhat it meansFix
too_many_secretsA backend allows at most 32 secrets.Delete an unused secret first.
value_too_largeA secret value exceeds 16 KB.Store a shorter value or a reference to the data.
vault_not_configuredThe server's vault key isn't set (operator/infra issue, not your app).Contact the operator.

Hosting & deploy

Raised by app deploys and custom-domain attachment. Full guide: App hosting.

CodeWhat it meansFix
no_build_configThe build didn't produce dist/server/wrangler.json (the Cloudflare Vite plugin didn't run).Rebuild with the correct adapter.
bundle_too_largeThe Worker bundle exceeds 60 MB.Trim dependencies and assets.
cap_reachedYou've hit the limit of hosted Worker apps (10).Delete an old one or upgrade.
rate_limitedToo many deploys (12/hour).Wait and retry.
custom_domain_failed / domain_taken / reserved_domain / invalid_domainA custom-domain attach problem โ€” DNS not pointing at the edge, the domain is already attached elsewhere, reserved, or malformed.Point DNS at the edge, free or rename the domain, and use a valid hostname.

Vector search

Raised by semantic search. Full guide: Vector search.

CodeWhat it meansFix
embeddings_not_configured / embeddings_failedManaged embeddings aren't available or failed.Set them up, or pass your own precomputed vectors to vector.search.

General

Transient and rate-limit errors that any endpoint can return.

CodeWhat it meansFix
server_error / cloud_errorA transient server problem.Retry; if it persists, contact support.
too_many_inflightToo many concurrent requests in flight.Back off and retry.
rate_limitedYou're sending requests too fast.Slow down.

Still stuck?

Run the advisors for schema and RLS issues, check the backend Logs in the console for the underlying error, and see support.