Skip to content

[bug] ssr-shims.js uses deprecated globalThis.litSsrCallConnectedCallback #3158

Description

@zeroedin

Summary

@patternfly/pfe-core/ssr-shims.js sets globalThis.litSsrCallConnectedCallback = true to opt elements into connectedCallback during Lit SSR. This global was deprecated in @lit-labs/ssr@4.x in favor of LitElementRenderer.renderOptions.

The result is a repeated console warning during every SSR render pass:

litSsrCallConnectedCallback is deprecated. Please use LitElementRenderer.renderOptions instead.

Current behavior

https://github.com/patternfly/patternfly-elements/blob/main/core/pfe-core/ssr-shims.ts

globalThis.litSsrCallConnectedCallback = true;

This triggers the deprecation path inside LitElementRenderer.connectedCallback() on every element instance rendered, flooding build logs with warnings.

Expected behavior

Replace the deprecated global with the new per-element configuration API:

import { LitElementRenderer } from '@lit-labs/ssr/lib/lit-element-renderer.js';

// Replicate the previous blanket opt-in for PFE/RHDS elements
LitElementRenderer.renderOptions.push(
  (element) =>
    element.localName.startsWith('pf-') || element.localName.startsWith('rh-')
      ? { connectedCallback: true }
      : undefined
);

Or, to preserve the exact previous behavior (all LitElements get connectedCallback called):

LitElementRenderer.renderOptions.push(() => ({ connectedCallback: true }));

Impact

  • The warning is cosmetic for now — @lit-labs/ssr still honors the global alongside the warning.
  • However, a future major version of @lit-labs/ssr will likely remove support for the global entirely, making this a future breaking change.

Environment

  • @patternfly/pfe-core: 5.0.8
  • @lit-labs/ssr: 4.1.0

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions