Skip to content

Errors

The SDK exports OpenCloudError and isOpenCloudError:

ts
class OpenCloudError extends Error {
  code: string;
  surface: "app" | "auth" | "data" | "files" | "functions" | "notifications" | "realtime" | "telemetry";
  status: number | null;
  requestId: string | null;
  retryable: boolean;
  details?: unknown;
}
js
import { opencloud, isOpenCloudError } from "/_opencloud/sdk.js";

try {
  await opencloud.data.table("items").create({ title });
} catch (error) {
  if (!isOpenCloudError(error)) throw error;

  if (error.code === "AUTH_REQUIRED") {
    renderSignIn();
  } else {
    renderSafeFailure({ requestId: error.requestId, retryable: error.retryable });
  }
}

Stable SDK codes include argument and response validation failures, auth and capability failures, network failures, manifest-aware Function failures, file size and attachment failures, and normalized platform codes. The exact backend code is preserved when it is a safe uppercase application code.

retryable is guidance, not permission to repeat a non-idempotent product action. High-level SDK operations already apply their documented idempotency or reconciliation behavior. Keep requestId for diagnostics. Do not parse raw response bodies or show details directly to an end user.

Self-hosted infrastructure for agent-built applications.