diff --git a/.changeset/eighty-fans-provide.md b/.changeset/eighty-fans-provide.md
new file mode 100644
index 0000000000..b98bc39924
--- /dev/null
+++ b/.changeset/eighty-fans-provide.md
@@ -0,0 +1,5 @@
+---
+'@backstage/core-components': patch
+---
+
+Fixed an issue causing `StructuredMetadataTable` to crash in case metadata contained `null` values.
diff --git a/packages/core-components/src/components/StructuredMetadataTable/StructuredMetadataTable.test.tsx b/packages/core-components/src/components/StructuredMetadataTable/StructuredMetadataTable.test.tsx
index 7ebe15c931..db7c53897d 100644
--- a/packages/core-components/src/components/StructuredMetadataTable/StructuredMetadataTable.test.tsx
+++ b/packages/core-components/src/components/StructuredMetadataTable/StructuredMetadataTable.test.tsx
@@ -21,7 +21,7 @@ import { StructuredMetadataTable } from './StructuredMetadataTable';
describe('', () => {
it('renders without exploding', () => {
- const metadata = { hello: 'world' };
+ const metadata = { hello: 'world', foo: null };
const { getByText } = render(
,
);
diff --git a/packages/core-components/src/components/StructuredMetadataTable/StructuredMetadataTable.tsx b/packages/core-components/src/components/StructuredMetadataTable/StructuredMetadataTable.tsx
index 6114054bbe..2b18f6ad19 100644
--- a/packages/core-components/src/components/StructuredMetadataTable/StructuredMetadataTable.tsx
+++ b/packages/core-components/src/components/StructuredMetadataTable/StructuredMetadataTable.tsx
@@ -113,7 +113,7 @@ function toValue(
return {value};
}
- if (typeof value === 'object' && !Array.isArray(value)) {
+ if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
return renderMap(value, options, nested);
}