perspective-dev/perspective · error
Custom element "perspective-viewer-datagrid" is already…
Error message
Custom element "perspective-viewer-datagrid" is already registered; skipping duplicate registration (Perspective was loaded more than once on this page).
What it means
Error "Custom element "perspective-viewer-datagrid" is already registered; skipping duplicate registration (Perspective was loaded more than once on this page)." thrown in perspective-dev/perspective.
Solutions
- Import perspective-viewer-datagrid only once per page bundle
- Audit the bundler for duplicated chunks containing the datagrid package
- Align package versions so a single datagrid build is present
- Treat the warning as benign — the plugin is already available and registration is skipped
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at packages/viewer-datagrid/src/ts/index.ts:29 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of perspective-dev/perspective@11c8238c0c (2026-09-09).
Data as JSON: /api/errors/ed1ec789795b04e5.
Report an issue: GitHub.
Appendix: source
Thrown at packages/viewer-datagrid/src/ts/index.ts:29
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
import "regular-table";
import { HTMLPerspectiveViewerDatagridPluginElement } from "./custom_elements/datagrid.js";
import { HTMLPerspectiveViewerDatagridToolbarElement } from "./custom_elements/toolbar.js";
/******************************************************************************
*
* Main
*
*/
interface PerspectiveViewerConstructor {
registerPlugin(tagName: string): void;
}
async function _register_element(): Promise<void> {
if (customElements.get("perspective-viewer-datagrid")) {
console.warn(
'Custom element "perspective-viewer-datagrid" is already registered; skipping duplicate registration (Perspective was loaded more than once on this page).',
);
return;
}
customElements.define(
"perspective-viewer-datagrid-toolbar",
HTMLPerspectiveViewerDatagridToolbarElement,
);
customElements.define(
"perspective-viewer-datagrid",
HTMLPerspectiveViewerDatagridPluginElement,
);
await customElements.whenDefined("perspective-viewer");
const PerspectiveViewer = customElements.get(
"perspective-viewer",View on GitHub (pinned to 11c8238c0c)