Skip to content

RpcError

Defined in: src/errors.ts:52

A remote error, as the client decoded it – also thrown server-side for framework-level protocol errors.

Carries the three layers of the error model:

  • errorCode – the canonical code’s name ("UNAVAILABLE"), or "" when the server sent none (a server older than the model). code reads it as an ErrorCode.
  • errorKind – the reason a client branches on, or "".
  • errorDetails – the detail objects as received, unknown types included. The typed accessors (retryInfo, …) return the catalog entry of that type and ignore the rest.

isRetryable classifies; nothing in this package retries an RPC error automatically, because a method may not be idempotent.

  • Error
new RpcError(
errorType,
errorMessage,
remoteTraceback,
model?
): RpcError;

Defined in: src/errors.ts:62

Parameter Type Description
errorType string Remote error class name (e.g. "ValueError").
errorMessage string Human-readable message from the remote error.
remoteTraceback string Remote stack-trace text, or an empty string when unavailable – which is when the server turned tracebacks off.
model RpcErrorModel -

RpcError

Error.constructor
optional cause?: unknown;

Defined in: docs/node_modules/typescript/lib/lib.es2022.error.d.ts:24

The cause of the error.

Error.cause

readonly errorCode: string;

Defined in: src/errors.ts:54

vgi_rpc.error_code as received, or "" when absent.


readonly errorDetails: readonly ErrorDetailJson[];

Defined in: src/errors.ts:58

vgi_rpc.error_details as received: every object, in wire order.


readonly errorKind: string;

Defined in: src/errors.ts:56

vgi_rpc.error_kind as received, or "" when absent.


readonly errorMessage: string;

Defined in: src/errors.ts:66

Human-readable message from the remote error.


readonly errorType: string;

Defined in: src/errors.ts:64

Remote error class name (e.g. "ValueError").


message: string;

Defined in: docs/node_modules/typescript/lib/lib.es5.d.ts:1075

Error.message

name: string;

Defined in: docs/node_modules/typescript/lib/lib.es5.d.ts:1074

Error.name

readonly remoteTraceback: string;

Defined in: src/errors.ts:69

Remote stack-trace text, or an empty string when unavailable – which is when the server turned tracebacks off.


readonly requestId: string;

Defined in: src/errors.ts:60

vgi_rpc.request_id, or "".


optional stack?: string;

Defined in: docs/node_modules/typescript/lib/lib.es5.d.ts:1076

Error.stack

static stackTraceLimit: number;

Defined in: node_modules/@types/node/globals.d.ts:67

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.

If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

Error.stackTraceLimit
get code():
| "CANCELLED"
| "UNKNOWN"
| "INVALID_ARGUMENT"
| "DEADLINE_EXCEEDED"
| "NOT_FOUND"
| "ALREADY_EXISTS"
| "PERMISSION_DENIED"
| "RESOURCE_EXHAUSTED"
| "FAILED_PRECONDITION"
| "ABORTED"
| "OUT_OF_RANGE"
| "UNIMPLEMENTED"
| "INTERNAL"
| "UNAVAILABLE"
| "DATA_LOSS"
| "UNAUTHENTICATED";

Defined in: src/errors.ts:81

The canonical code; UNKNOWN when absent or unrecognised.

| "CANCELLED" | "UNKNOWN" | "INVALID_ARGUMENT" | "DEADLINE_EXCEEDED" | "NOT_FOUND" | "ALREADY_EXISTS" | "PERMISSION_DENIED" | "RESOURCE_EXHAUSTED" | "FAILED_PRECONDITION" | "ABORTED" | "OUT_OF_RANGE" | "UNIMPLEMENTED" | "INTERNAL" | "UNAVAILABLE" | "DATA_LOSS" | "UNAUTHENTICATED"

badRequest(): BadRequest | null;

Defined in: src/errors.ts:115

The vgi_rpc.BadRequest detail, if present.

BadRequest | null


details(): ErrorDetail[];

Defined in: src/errors.ts:93

The details this client understands, in wire order; unknown types skipped.

ErrorDetail[]


errorInfo(): ErrorInfo | null;

Defined in: src/errors.ts:107

The vgi_rpc.ErrorInfo detail, if present.

ErrorInfo | null


help(): Help | null;

Defined in: src/errors.ts:131

The vgi_rpc.Help detail, if present.

Help | null


isRetryable(): boolean;

Defined in: src/errors.ts:88

Whether retrying this call is warranted (WIRE_PROTOCOL.md §8): UNAVAILABLE always, RESOURCE_EXHAUSTED only with RetryInfo. When retryInfo is present a retry waits at least that long.

boolean


localizedMessage():
| LocalizedMessage
| null;

Defined in: src/errors.ts:135

The vgi_rpc.LocalizedMessage detail, if present.

| LocalizedMessage | null


preconditionFailure():
| PreconditionFailure
| null;

Defined in: src/errors.ts:119

The vgi_rpc.PreconditionFailure detail, if present.

| PreconditionFailure | null


quotaFailure(): QuotaFailure | null;

Defined in: src/errors.ts:123

The vgi_rpc.QuotaFailure detail, if present.

QuotaFailure | null


resourceInfo(): ResourceInfo | null;

Defined in: src/errors.ts:127

The vgi_rpc.ResourceInfo detail, if present.

ResourceInfo | null


retryInfo(): RetryInfo | null;

Defined in: src/errors.ts:111

The vgi_rpc.RetryInfo detail, if present.

RetryInfo | null


static captureStackTrace(targetObject, constructorOpt?): void;

Defined in: node_modules/@types/node/globals.d.ts:51

Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`

The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.

The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.

The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:

function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
Parameter Type
targetObject object
constructorOpt? Function

void

Error.captureStackTrace
static captureStackTrace(targetObject, constructorOpt?): void;

Defined in: node_modules/bun-types/globals.d.ts:1042

Create .stack property on a target object

Parameter Type
targetObject object
constructorOpt? Function

void

Error.captureStackTrace

static isError(error): error is Error;

Defined in: docs/node_modules/typescript/lib/lib.esnext.error.d.ts:21

Indicates whether the argument provided is a built-in Error instance or not.

Parameter Type
error unknown

error is Error

Error.isError
static isError(value): value is Error;

Defined in: node_modules/bun-types/globals.d.ts:1037

Check if a value is an instance of Error

Parameter Type Description
value unknown The value to check

value is Error

True if the value is an instance of Error, false otherwise

Error.isError

static prepareStackTrace(err, stackTraces): any;

Defined in: node_modules/@types/node/globals.d.ts:55

Parameter Type
err Error
stackTraces CallSite[]

any

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

Error.prepareStackTrace