diff --git a/frontend/src/components/BackendServers.js b/frontend/src/components/BackendServers.js
index c03c136..1fc6501 100644
--- a/frontend/src/components/BackendServers.js
+++ b/frontend/src/components/BackendServers.js
@@ -1018,7 +1018,20 @@ const BackendServers = () => {
title: 'Servers',
dataIndex: 'servers',
key: 'servers',
- render: (servers) => {
+ render: (servers = []) => {
+ // CRITICAL FIX: Handle null/undefined servers array for backends without servers
+ if (!servers || !Array.isArray(servers)) {
+ return (
+
+ 0
+ /0
+ active
+
+ ⚠️ Empty
+
+
+ );
+ }
const activeServers = servers.filter(s => s.is_active).length;
const totalServers = servers.length;
return (
@@ -1250,13 +1263,15 @@ const BackendServers = () => {
];
const renderServerList = () => {
- const allServers = backends.flatMap(backend =>
- backend.servers.map(server => ({
+ // CRITICAL FIX: Handle null/undefined servers array for backends without servers
+ const allServers = backends.flatMap(backend => {
+ const servers = backend.servers || [];
+ return servers.map(server => ({
...server,
backend_name: backend.name,
backend_id: backend.id
- }))
- );
+ }));
+ });
return (
{
rowKey="id"
loading={loading}
expandable={{
- expandedRowRender: record => (
-
-
Servers in {record.name}:
- {record.servers.length > 0 ? (
-
(
-
-
- }
- onClick={() => handleEditServer(server, record)}
- />
-
- handleDeleteServer(server.id)}
- okText="Yes"
- cancelText="No"
- >
-
+ expandedRowRender: record => {
+ // CRITICAL FIX: Handle null/undefined servers array for backends without servers
+ const servers = record.servers || [];
+ return (
+
+
Servers in {record.name}:
+ {servers.length > 0 ? (
+
(
+
+
}
+ icon={}
+ onClick={() => handleEditServer(server, record)}
/>
-
-
- ),
- },
- ])}
- dataSource={record.servers}
- rowKey="id"
- pagination={false}
- size="small"
- />
- ) : (
-
- No servers configured
-
- }
- onClick={() => handleAddServer(record)}
- >
- Add First Server
-
-
- )}
-
- ),
+ handleDeleteServer(server.id)}
+ okText="Yes"
+ cancelText="No"
+ >
+
+ }
+ />
+
+
+
+ ),
+ },
+ ])}
+ dataSource={servers}
+ rowKey="id"
+ pagination={false}
+ size="small"
+ />
+ ) : (
+
+ No servers configured
+
+ }
+ onClick={() => handleAddServer(record)}
+ >
+ Add First Server
+
+
+ )}
+
+ );
+ },
}}
pagination={{
showSizeChanger: true,