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

  1. Read remoteResult.message from the thrown/caught error for the precise remote cause and address it (auth, conflict, etc.)
  2. Re-authenticate with the remote service (check API key / 'task-master login')
  3. Check network connectivity to the remote endpoint and retry
  4. 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

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


AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29). Data as JSON: /api/errors/515c4fc231c6ea98. Report an issue: GitHub.