alibaba/nacos · error · Error
agent.latestLabelManaged
Error message
agent.latestLabelManaged
What it means
Thrown by updateLabels when the parsed labels object contains the reserved key `latest`. The `latest` label is system-managed (it tracks the agent's latest version) and cannot be set or overridden by users. The check is `'latest' in parsed`.
Source
Thrown at console-ui-next/src/pages/agentDetail/index.tsx:292
agentName,
version: currentVersion.version,
});
toast.success(t('agent.deleteDraftSuccess'));
setSelectedVersion('');
await loadOverview();
} finally {
setActionLoading(false);
}
};
const updateLabels = async () => {
try {
const parsed = JSON.parse(labelsText);
if (parsed === null || Array.isArray(parsed) || typeof parsed !== 'object') {
throw new Error(t('agent.labelsObjectRequired'));
}
if ('latest' in parsed) {
throw new Error(t('agent.latestLabelManaged'));
}
await agentApi.updateLabels({
namespaceId,
agentName,
labels: JSON.stringify(parsed),
});
toast.success(t('agent.updateSuccess'));
await loadOverview();
} catch (error) {
if (error instanceof SyntaxError || (error instanceof Error && !('response' in error))) {
toast.error(error instanceof SyntaxError ? t('agent.jsonFormatError') : error.message);
}
}
};
if (detailLoading && !currentOverview) {
return (
<div className="space-y-4">View on GitHub (pinned to 9b989acdf1)
Solutions
- Remove the `latest` key from the labels object before saving.
- Rename the intended key to something non-reserved (e.g. `isCurrent`, `primaryVersion`).
- Reserve a documented list of system-managed label keys and surface it in the UI.
Example fix
// before
{"latest":true,"env":"prod"}
// after
{"env":"prod"} Defensive patterns
Strategy: validation
Validate before calling
const RESERVED = ['latest'];
function checkReservedKeys(obj) {
for (const k of RESERVED) if (k in obj) throw new Error(`Key '${k}' is system-managed`);
} Type guard
function hasNoReservedKeys(v: Record<string, unknown>, reserved = ['latest']): boolean {
return reserved.every((k) => !(k in v));
} Try / catch
try { await updateLabels(); } catch (e) {
if (/latestLabelManaged/.test(e.message)) { toast.error('Remove the reserved "latest" key'); }
} Prevention
- Document reserved keys in UI
- Filter reserved keys before send
- Disable editing of system labels
When it happens
Trigger: User includes "latest" as a key in the labels JSON, e.g. {"latest":true} or {"latest":"v3"}, attempting to control the latest-version pointer manually.
Common situations: User sees a `latest` label in the UI output and tries to edit or remove it. Migrating labels from another system that happens to use a `latest` key for a different meaning.
Related errors
- The latest label is managed by the server
- Labels must be a JSON object
- agent.labelsObjectRequired
- 10000
- PARAMETER_MISSING
AI-assisted analysis of alibaba/nacos@9b989acdf1 (2026-08-14).
Data as JSON: /api/errors/f9ad1660e4bf67a5.
Report an issue: GitHub.