milvus-io/milvus · error
Failed to push config
Error message
Failed to push config
What it means
Thrown when POSTing a push_config command to /_telemetry/commands fails with a non-2xx, non-401 status. The server rejected the command enqueue: most often validation of the payload (invalid JSON config string) or an invalid target scope (database/client that does not exist). The server-provided error body is preferred when parseable; the literal message is only the fallback.
Source
Thrown at internal/http/webui/telemetry.html:2666
},
body: JSON.stringify({
command_type: 'push_config',
target_client_id: targetScope === 'client' ? targetClient : '',
target_database: targetScope === 'database' ? targetDatabase : '',
payload: Object.keys(payload).length > 0 ? JSON.stringify(payload) : '',
ttl_seconds: 3600,
persistent: persistent
})
});
if (resp.status === 401) {
logout();
return;
}
if (!resp.ok) {
const error = await resp.json();
throw new Error(error.error || 'Failed to push config');
}
const result = await resp.json();
// Refresh commands from server
await loadServerCommands();
showToast(`Config pushed successfully (ID: ${result.command_id})`, 'success');
} catch (error) {
showToast('Error: ' + error.message, 'error');
}
}
// =====================================================
// Tab 2: Collection Metrics Functions
// =====================================================
function updateCollectionTargetClient() {View on GitHub (pinned to b43a76673a)
Solutions
- Read the toast: it shows the server's error field when available - fix the named field (usually JSON syntax or unknown target).
- Validate the config JSON in the editor (JSON.parse) before submitting.
- Refresh targets: confirm the client_id or database in the scope selector still exists.
- If 'Failed to push config' appears with HTTP 500 in devtools, check proxy logs for the command-store error.
Defensive patterns
Strategy: validation
Validate before calling
// validate before submit
try { JSON.parse(configPayloadString); } catch { showToast('Config payload is not valid JSON', 'error'); return; }
if (!targetScope || (targetScope === 'client' && !targetClient)) { showToast('Select a valid target', 'error'); return; } Try / catch
try {
const resp = await fetch(url, { method: 'POST', headers, body });
if (resp.status === 401) { logout(); return; }
if (!resp.ok) {
const error = await resp.json().catch(() => ({}));
throw new Error(error.error || `Failed to push config (HTTP ${resp.status})`);
}
} catch (e) { showToast(e.message, 'error'); } Prevention
- JSON.parse-validate any hand-edited payload before POSTing.
- Refresh target (client/database) selectors immediately before pushing.
- Show the server error field, not a static fallback, whenever the body parses.
When it happens
Trigger: Pushing a config whose payload is not valid JSON or contains unknown keys; targeting a client_id or database that the server does not know; ttl_seconds/persistent fields out of accepted range; server 500 enqueueing a persistent command.
Common situations: Hand-editing the config JSON in the modal and introducing a syntax error; stale client dropdown after clients disconnect; pushing to a database the authenticated user cannot address.
Related errors
- HTTP ${response.status}
- Server error
- Failed to delete command
- Failed to request errors
- Empty payload received
AI-assisted analysis of milvus-io/milvus@b43a76673a (2026-08-15).
Data as JSON: /api/errors/8457917c7e55f2bd.
Report an issue: GitHub.