alibaba/nacos · warning · Error
providerName is required when providerUrl is set
Error message
providerName is required when providerUrl is set
What it means
Thrown by serializeProvider() in agent-console-model when the provider URL is filled in but the provider name is left blank. A provider is optional, but if any part is supplied the name becomes mandatory because the server requires a non-empty provider name to persist the entry.
Source
Thrown at console-ui/src/pages/AI/agent-console-model.js:338
return JSON.stringify([
buildStructuredCallInterface(agentName, version, editorFromValues(values)),
]);
}
const parsed = parseJson(required(values.callInterfaces, 'callInterfaces'), 'callInterfaces');
if (!Array.isArray(parsed) || parsed.length === 0) {
throw new Error('callInterfaces must be a non-empty JSON array');
}
return JSON.stringify(parsed);
}
function serializeProvider(values) {
const name = String(values.providerName || '').trim();
const url = String(values.providerUrl || '').trim();
if (!name && !url) {
return undefined;
}
if (!name) {
throw new Error('providerName is required when providerUrl is set');
}
return JSON.stringify(url ? { name, url } : { name });
}
function serializeTags(value) {
const tags = String(value || '')
.split(',')
.map(item => item.trim())
.filter(Boolean);
return tags.length > 0 ? JSON.stringify(tags) : undefined;
}
export function buildDraftCreateData(namespaceId, values, initial, contentMode, protocolEditors) {
const result = {
namespaceId,
agentName: required(values.agentName, 'agentName'),
version: required(values.version, 'version'),
author: String(values.author || '').trim() || undefined,View on GitHub (pinned to 9b989acdf1)
Solutions
- Fill in providerName whenever providerUrl is set.
- Clear providerUrl if you only have a name and no URL (name alone is valid).
- Leave both blank to omit the provider entirely.
Example fix
// before
{ providerName: '', providerUrl: 'https://acme.io' }
// after
{ providerName: 'Acme', providerUrl: 'https://acme.io' } Defensive patterns
Strategy: validation
Validate before calling
function providerIsValid(values) {
const name = String(values.providerName || '').trim();
const url = String(values.providerUrl || '').trim();
return !url || !!name;
} Try / catch
try {
serializeProvider(values);
} catch (e) {
Message.error(e.message); // 'providerName is required when providerUrl is set'
return;
} Prevention
- Make providerName required in the UI whenever providerUrl is non-empty.
- Clear both fields together when removing a provider.
- Validate on blur of either field.
When it happens
Trigger: Entering a value in the providerUrl field while leaving providerName empty on the initial agent draft form.
Common situations: User knows the provider's website but not its display name, or pastes a URL expecting the name to be auto-derived.
Related errors
- at least one protocol is required
- Labels must be a JSON object
- The latest label is managed by the server
- ${name} is required
- ${name} must be valid JSON
AI-assisted analysis of alibaba/nacos@9b989acdf1 (2026-08-14).
Data as JSON: /api/errors/f824924b0a620f9f.
Report an issue: GitHub.