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

  1. Read the toast: it shows the server's error field when available - fix the named field (usually JSON syntax or unknown target).
  2. Validate the config JSON in the editor (JSON.parse) before submitting.
  3. Refresh targets: confirm the client_id or database in the scope selector still exists.
  4. 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

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


AI-assisted analysis of milvus-io/milvus@b43a76673a (2026-08-15). Data as JSON: /api/errors/8457917c7e55f2bd. Report an issue: GitHub.