Skip to content

Errors ​

All SDK errors derive from XViewerError. Catch the base class to handle anything thrown by the viewer, or branch on the subclass to react to specific failure categories.

Hierarchy ​

Error
└── XViewerError              category: "plugin" | "service" | "config" | "loader" | "renderer" | "component"
    ├── PluginError           category: "plugin"
    ├── ServiceError          category: "service"
    ├── ConfigError           category: "config"
    ├── LicenseError          category: "config"
    └── LoaderError           category: "loader"

XViewerError ​

ts
class XViewerError extends Error {
  readonly code: string;
  readonly category: "plugin" | "service" | "config" | "loader" | "renderer" | "component";
}

Base class. Always carries a string code and a category. Catch this when you want a single handler for all SDK errors.

Subclasses ​

ClassDefault codeThrown when
PluginErrorPLUGIN_ERRORA plugin fails to register, activate, deactivate, or throws inside its lifecycle hooks.
ServiceErrorSERVICE_ERRORA service fails to start, a service method receives invalid state, or a required service is missing from the registry.
ConfigErrorCONFIG_ERRORXViewerConfig is malformed, a required field is missing, or a value fails validation at construction time.
LicenseErrorLICENSE_ERRORLicense key missing, malformed, signature invalid, expired, revoked, or feature/plugin not licensed. Categorized as "config".
LoaderErrorLOADER_ERRORAsset fetch fails, parsing fails, file type unsupported, or chunked manifest is invalid.

Usage ​

ts
import {
  ViewerCore,
  XViewerError,
  ConfigError,
  LicenseError,
  LoaderError,
} from "@optellix/xviewr-sdk";

try {
  const viewer = new ViewerCore(container, config);
  await viewer.ready();
  const loader = viewer.getService("loader");
} catch (err) {
  if (err instanceof LicenseError) {
    console.error("License rejected:", err.code, err.message);
  } else if (err instanceof ConfigError) {
    console.error("Bad config:", err.code, err.message);
  } else if (err instanceof LoaderError) {
    console.error("Load failed:", err.code, err.message);
  } else if (err instanceof XViewerError) {
    console.error(`[${err.category}] ${err.code}: ${err.message}`);
  } else {
    throw err;
  }
}

Branch on instanceof for the subclass, on code for a specific failure mode within a category.


Confidential. Optellix Pvt. Ltd. proprietary documentation. Subject to applicable data-protection laws including DPDP 2023, GDPR, and CCPA.

XViewr SDK and xConvert CLI documentation.