davila7/claude-code-templates · warning · Error
Workflow with hash "${hash}" not found. Please check the has
Error message
Workflow with hash "${hash}" not found. Please check the hash and try again. What it means
Thrown after fetchWorkflowData(hash) returns null/undefined: the CLI could not resolve the given hash to any workflow. Either the hash's encoded payload failed all decode paths or no local/registry entry matches the short form.
Source
Thrown at cli-tool/src/index.js:2064
console.log(chalk.blue(`🔧 Installing workflow from hash: ${workflowHash}`));
try {
// Extract hash from format #hash
const hash = workflowHash.startsWith('#') ? workflowHash.substring(1) : workflowHash;
if (!hash || hash.length < 3) {
throw new Error('Invalid workflow hash format. Expected format: #hash');
}
console.log(chalk.gray(`📥 Fetching workflow configuration...`));
// Fetch workflow configuration from a remote service
// For now, we'll simulate this by using a local storage approach
// In production, this would fetch from a workflow registry
const workflowData = await fetchWorkflowData(hash);
if (!workflowData) {
throw new Error(`Workflow with hash "${hash}" not found. Please check the hash and try again.`);
}
console.log(chalk.green(`✅ Workflow found: ${workflowData.name}`));
console.log(chalk.cyan(`📝 Description: ${workflowData.description}`));
console.log(chalk.cyan(`🏷️ Tags: ${workflowData.tags.join(', ')}`));
console.log(chalk.cyan(`📊 Steps: ${workflowData.steps.length}`));
// Install all required components
const installPromises = [];
// Group components by type
const agents = workflowData.steps.filter(step => step.type === 'agent');
const commands = workflowData.steps.filter(step => step.type === 'command');
const mcps = workflowData.steps.filter(step => step.type === 'mcp');
console.log(chalk.blue(`\n📦 Installing workflow components...`));
console.log(chalk.gray(` Agents: ${agents.length}`));
console.log(chalk.gray(` Commands: ${commands.length}`));View on GitHub (pinned to a0851ed10c)
Solutions
- Regenerate the share link from the dashboard with the current version
- Verify the hash was copied completely (long base64/compressed payload)
- Upgrade the CLI to the latest version (`npx claude-code-templates@latest`) so decode formats match
- If using short hashes, confirm the workflow still exists in the registry
Defensive patterns
Strategy: try-catch
Validate before calling
null
Try / catch
try {
await installWorkflowFromHash(hash);
} catch (e) {
if (/not found/.test(e.message)) {
console.error('This share link is invalid or expired — regenerate it from the dashboard');
process.exit(1);
}
throw e;
} Prevention
- Regenerate share links from the current dashboard version
- Keep CLI and dashboard versions aligned
- Treat share hashes as ephemeral — store the workflow definition, not the hash
When it happens
Trigger: Passing a valid-length (>=3 chars) hash that doesn't correspond to any stored/encodable workflow — e.g. an old shortened hash whose registry entry expired, or a fabricated hash.
Common situations: Share links from an older CLI/dashboard version using a different encoding; hashes shared from a different environment/registry; typos in the hash body.
Related errors
- Invalid workflow hash format. Expected format: #hash
- Decompression failed: ${error.message}
- Invalid hash format: missing encoded data
- Failed to decode workflow data from hash
- Invalid workflow data structure in hash
AI-assisted analysis of davila7/claude-code-templates@a0851ed10c (2026-08-28).
Data as JSON: /api/errors/440b0a5173f61d78.
Report an issue: GitHub.