diff --git a/packages/mermaid/src/rendering-util/rendering-elements/createLabel.js b/packages/mermaid/src/rendering-util/rendering-elements/createLabel.js
index de6f0403d..012d4fb2d 100644
--- a/packages/mermaid/src/rendering-util/rendering-elements/createLabel.js
+++ b/packages/mermaid/src/rendering-util/rendering-elements/createLabel.js
@@ -81,7 +81,7 @@ const createLabel = async (_vertexText, style, isTitle, isNode) => {
return vertexNode;
} else {
const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
- svgLabel.setAttribute('style', style.replace('color:', 'fill:'));
+ svgLabel.setAttribute('style', style ? style.replace('color:', 'fill:') : '');
let rows = [];
if (typeof vertexText === 'string') {
rows = vertexText.split(/\\n|\n|
/gi);
diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts
index 9dd4c90e2..7e5557490 100644
--- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts
+++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts
@@ -62,9 +62,12 @@ export async function erBox(parent: D3Selection
// drawRect doesn't center non-htmlLabels correctly as of now, so translate label
if (!evaluate(config.htmlLabels)) {
- const textElement = shapeSvg.select('text');
- const bbox = (textElement.node() as SVGTextElement)?.getBBox();
- textElement.attr('transform', `translate(${-bbox.width / 2}, 0)`);
+ const textElement = shapeSvg.select('.label text');
+ const textNode = textElement.node() as SVGTextElement;
+ if (textNode) {
+ const bbox = textNode.getBBox();
+ textElement.attr('transform', `translate(${-bbox.width / 2}, 0)`);
+ }
}
return shapeSvg;
}