Files

2.9 KiB

Troubleshooting Guide

Common Issues

❌ Network/API Failures

Cause: PyPI API timeouts, rate limiting, network issues
Symptoms: "Could not fetch PyPI data", recovery mode failures
Fix: Workflows now have timeouts, retries, and fallbacks to "0.0.0"
Manual: Re-run publish workflow after network issues resolve

❌ Concurrent Workflow Conflicts

Cause: Multiple workflows running simultaneously
Symptoms: Git conflicts, "failed to push" errors
Fix: Added concurrency controls to prevent parallel runs
Manual: Wait for other workflows to complete, then re-run

❌ Invalid Version Formats

Cause: Non-semantic versions (e.g., "1.2", "v1.0.0", "1.2.3-beta")
Symptoms: "Invalid version format" in publish workflow
Fix: Use semantic versioning (x.y.z format) in pyproject.toml files
Manual: Fix version format and re-run version-check workflow

❌ "bundles.json missing template assignments"

Cause: Added templates without updating bundles.json
Fix: Add template IDs to appropriate bundle:

{
  "media-api": ["api_new_template"],
  "media-video": ["video_new_template"], 
  "media-image": ["image_new_template"],
  "media-other": ["other_new_template"]
}

❌ Package not found on PyPI

Cause: Publish workflow failed, package version skipped
Fix: Trigger manual publish (has recovery mode)

gh workflow run "Publish to PyPI"

❌ Version check grep error

Cause: Multiple version = lines in pyproject.toml
Current fix: Uses anchored regex grep -E '^\\s*version\\s*='

❌ Validation bypass (green checkmarks despite failures)

Cause: Auto-commits trigger new workflow runs
Fix: Validation workflows now use synchronize trigger

❌ Unexpected changes to templates/index*.json

Cause: sync-custom-nodes.yml auto-commits requiresCustomNodes updates
Symptoms: Unexpected file changes in PR after push
Fix: This is normal automation. Pull latest changes from the PR branch.

Recovery Commands

Check PyPI Status

# Check all package versions vs PyPI
for pkg in core media-api media-video media-image media-other; do
  local=$(./scripts/ci/get_version.sh "packages/${pkg//-/_}/pyproject.toml")
  pypi=$(./scripts/ci/get_pypi_version.sh "hanzo-studio-workflow-templates-$pkg")
  echo "$pkg: local=$local pypi=$pypi"
done

Force Rebuild Manifests

python scripts/sync_bundles.py
git add packages/*/src/*/manifest.json
git commit -m "Rebuild manifests"

Manual Version Bump

# Bump specific package
sed -i 's/version = "0.3.5"/version = "0.3.6"/' packages/core/pyproject.toml
# Update meta dependencies  
python scripts/ci_version_manager.py

Validation Flow

PR opened → validation runs → ✅/❌
  ↓
Auto-commit pushed → validation runs AGAIN → ✅/❌  
  ↓
Merge only if all validations ✅