eyaltoledano/claude-task-master · error · Error
Remote tag creation failed
Error message
Remote tag creation failed
What it means
createTag first delegates to a remote (API-backed) tag bridge. If the bridge returns a result with success=false, createTag throws either the bridge's message or the fallback 'Remote tag creation failed'. This indicates the tag was not created on the remote service.
Source
Thrown at scripts/modules/task-manager/tag-management.js:73
warn: (...args) => log('warn', ...args),
error: (...args) => log('error', ...args),
debug: (...args) => log('debug', ...args),
success: (...args) => log('success', ...args)
};
// Check if API storage should handle this via remote
const remoteResult = await tryAddTagViaRemote({
tagName,
projectRoot: projectRoot || findProjectRoot(),
isMCP: !!mcpLog,
outputFormat,
report: (level, ...args) => logFn[level](...args)
});
// If remote handled it, return the result
if (remoteResult) {
if (!remoteResult.success) {
throw new Error(remoteResult.message || 'Remote tag creation failed');
}
if (outputFormat === 'json') {
return remoteResult;
}
// For text output, the bridge already displayed the message
return remoteResult;
}
// Otherwise, continue with file-based logic below
try {
// Validate tag name
if (!tagName || typeof tagName !== 'string') {
throw new Error('Tag name is required and must be a string');
}
// Validate tag name format (alphanumeric, hyphens, underscores only)
if (!/^[a-zA-Z0-9_-]+$/.test(tagName)) {
throw new Error(View on GitHub (pinned to c0c98d367c)
Solutions
- Read remoteResult.message from the thrown/caught error for the precise remote cause and address it (auth, conflict, etc.)
- Re-authenticate with the remote service (check API key / 'task-master login')
- Check network connectivity to the remote endpoint and retry
- Verify the tag name does not already exist on the remote
Defensive patterns
Strategy: retry
Validate before calling
// Before calling, verify remote connectivity/auth
const ok = await checkRemoteAuth(); // e.g. ping the API or 'task-master auth status'
if (!ok) throw new Error('Remote unavailable — fix credentials/network before creating tags'); Type guard
function isSuccessfulRemoteResult(r) {
return Boolean(r) && r.success === true;
} Try / catch
try {
await createTag(tasksPath, name, { copyFromCurrent });
} catch (err) {
if (err.message === 'Remote tag creation failed' || err.message.includes('remote')) {
console.error('Remote tag creation failed; check auth/network, then retry.');
await retry(() => createTag(tasksPath, name, { copyFromCurrent }), { tries: 3 });
} else throw err;
} Prevention
- Keep API credentials fresh (re-login before long CI runs)
- Check connectivity/VPN before remote-backed operations
- Inspect the bridge's remoteResult.message — it usually names the exact remote cause
- Confirm the remote tag name is unique before creating
When it happens
Trigger: Creating a tag while connected to a remote (Hammer/API) backend when the remote rejects creation — e.g. auth failure, tag name conflict on the server, network errors surfaced by the bridge, or remote quota limits.
Common situations: Expired API credentials; offline/VPN issues while remote mode is configured; remote tag with the same name already exists; server-side validation rejecting the name.
Related errors
- API request failed: ${response.status} - ${errorText}
- API_ERROR
- NETWORK_ERROR
- Failed to initialize API storage, falling back to file stora
- START_FLOW_FAILED
AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29).
Data as JSON: /api/errors/515c4fc231c6ea98.
Report an issue: GitHub.